/** * 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); } }); };