1 | var express = require('express');
|
2 | var router = express.Router();
|
3 | var _ = require('lodash');
|
4 | var config = require('../core/config');
|
5 | var validator = require('validator');
|
6 | var log4js = require('log4js');
|
7 | var log = log4js.getLogger("cps:auth");
|
8 |
|
9 | router.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 |
|
19 | router.get('/link', (req, res) => {
|
20 | res.redirect(`/auth/login`);
|
21 | });
|
22 |
|
23 | router.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 |
|
34 | router.post('/logout', (req, res) => {
|
35 | res.send("ok");
|
36 | });
|
37 |
|
38 | router.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 |
|
65 | module.exports = router;
|