UNPKG

1.99 kBJavaScriptView Raw
1var express = require('express');
2var router = express.Router();
3var _ = require('lodash');
4var config = require('../core/config');
5var validator = require('validator');
6var log4js = require('log4js');
7var log = log4js.getLogger("cps:auth");
8
9router.get('/login', (req, res) => {
10 var codePushWebUrl = _.get(config, 'common.codePushWebUrl');
11 if (codePushWebUrl && validator.isURL(codePushWebUrl)) {
12 log.debug(`login redirect:${codePushWebUrl}`);
13 res.redirect(`${codePushWebUrl}/login`);
14 } else {
15 res.render('auth/login', { title: 'CodePushServer' });
16 }
17});
18
19router.get('/link', (req, res) => {
20 res.redirect(`/auth/login`);
21});
22
23router.get('/register', (req, res) => {
24 var codePushWebUrl = _.get(config, 'common.codePushWebUrl');
25 var isRedirect = false;
26 if (codePushWebUrl && validator.isURL(codePushWebUrl)) {
27 log.debug(`register redirect:${codePushWebUrl}`);
28 res.redirect(`${codePushWebUrl}/register`);
29 } else {
30 res.render('auth/login', { title: 'CodePushServer' });
31 }
32});
33
34router.post('/logout', (req, res) => {
35 res.send("ok");
36});
37
38router.post('/login', (req, res, next) => {
39 var AppError = require('../core/app-error');
40 var accountManager = require('../core/services/account-manager')();
41 var security = require('../core/utils/security');
42 var account = _.trim(req.body.account);
43 var password = _.trim(req.body.password);
44 var tokenSecret = _.get(config, 'jwt.tokenSecret');
45 log.debug(`login:${account}`);
46 accountManager.login(account, password)
47 .then((users) => {
48 var jwt = require('jsonwebtoken');
49 return jwt.sign({ uid: users.id, hash: security.md5(users.ack_code), expiredIn: 7200 }, tokenSecret);
50 })
51 .then((token) => {
52 log.debug(token);
53 res.send({status:'OK', results: {tokens: token}});
54 })
55 .catch((e) => {
56 if (e instanceof AppError.AppError) {
57 log.debug(e);
58 res.send({status:'ERROR', errorMessage: e.message});
59 } else {
60 next(e);
61 }
62 });
63});
64
65module.exports = router;