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