【发布时间】:2017-05-31 02:21:29
【问题描述】:
我创建了一个 MEAN 堆栈 Web 应用程序,它具有登录注销选项。对于要登录的用户,我使用了 jsonwebtoken npm 包。 这里的主要问题是当用户登录时创建了 JWT,并且在该令牌的有效负载中包含用户名、电子邮件和全名,但是在解码令牌时我只得到用户名和电子邮件字段
这里是 jwt.sign 函数-
var token=jwt.sign({userid:user.username,email:user.email,fullname:user.fullname},secret,{expiresIn:'24h'});
这里是 jwt.verify 方法-
jwt.verify(token,secret,function(err,decoded){
if(err){
res.json({success:false,message:"invalid token"});
} else {
req.decoded=decoded;
next();
}
})
令牌示例-
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiJuaXRpbi5zYWNoZGV2IiwiZW1haWwiOiJuaXRpbi5zYWNoZGV2QGVtYWlsLmNvbSIsImlhdCI6MTQ4NDU1ODAxMiwiZXhwIjoxNDg0NjQ0NDEyfQ.fWogT-aHJY4Xyc8Ebm4OXPkWD3poaWG3IAAf9VS-q58
令牌解码-
{
"userid": "nitin.sachdev",
"email": "nitin.sachdev@email.com",
"iat": 1484558012,
"exp": 1484644412
}
userSchema -
var UserSchema=new Schema({
fullname:String,
username:{type:String,lowercase:true,required:true,unique:true},
password:{type:String,required:true},
email:{type:String,required:true,lowercase:true,unique:true},
contactno:Number,
orgname:String
});
【问题讨论】:
标签: javascript node.js jwt mean-stack