tokenUtil.js 1.3 KB
/**
 * 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);
       }
   });

};