-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheckToken_utils.js
More file actions
51 lines (48 loc) · 1.34 KB
/
checkToken_utils.js
File metadata and controls
51 lines (48 loc) · 1.34 KB
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
let md5 = require('js-md5');
let mongoose = require('mongoose');
let Users = mongoose.model('Users');
let DO_ERROR_RES = require('./DO_ERROR_RES');
let $base64 = require('../utils/base64_utils');
function checkToken(token) {
let [username, pwdMD5, time] = $base64.decode(token).split("|");
let timeNow = new Date().getTime();
return new Promise(function (resolve, reject) {
if ((timeNow - time) > 1000 * 60 * 60 * 2) {
reject ({
"code": "10",
"msg": "token time out!"
});
}else {
Users.findOne({username: username}, function (err, doc) {
if (err) {
DO_ERROR_RES(res);
reject();
return next();
}
if (!!doc) {
if (!!doc.is_admin) {
if (pwdMD5 === md5(`${doc.password}|${time}`)) {
resolve(true);
}else {
reject({
"code": "10",
"msg": "password not right, failed"
});
}
} else {
reject({
"code": "9",
"mgs": "you are vistor"
});
}
} else {
reject ({
"code": "10",
"msg": "token format error"
});
}
})
}
})
}
module.exports = checkToken;