tokenUtil.js
1.3 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
52
53
54
55
56
57
58
59
/**
* Created by fzy on 17/8/16.
*/
var jwt = require('jsonwebtoken');
var ObjectId = require('objectid');
function JwtSession(opt) {
this.jwtTokenSecret = (opt && opt.jwtTokenSecret) || 'test';
}
JwtSession = module.exports ;
/**
* 生成token
* @param users
* @param cb
*/
JwtSession.getSession = function (users ,cb) {
cb = typeof cb === 'function' ? cb : function (){
};
var expiresIn = 60 * 60 * 60 * 60 * 60;
var payload = {};
payload.id = users.id;
payload.name = users.name;
payload.code =users.code;
payload.category = users.category;
if(users.type){
payload.type = users.type;
}
var options = {
"expiresIn": expiresIn
};
console.log(options);
var token = jwt.sign(payload, '3mang', options);
users.token = token;
users.tokenTime = expiresIn;
console.log(users);
cb && cb(null,users);
};
/**
* 验证token
* @param token
* @param cb
*/
JwtSession.verifySession = function (token,cb) {
jwt.verify(token, 'Efangcpap',function (err ,data) {
console.dir(data);
if (err && err.name === 'TokenExpiredError') {
cb && cb({message: 'token expired'});
} else if (err && err.name === 'JsonWebTokenError') {
cb && cb({message: 'invalid token'});
}else {
cb && cb (null,data);
}
});
};