0
ログインログアウトオプションを持つMEANスタックWebアプリケーションを作成しました。ログインするユーザーはjsonwebtoken npmパッケージを使用しています。 JWTユーザがログインが作成されたときにここでの主な問題であり、そのトークンのペイロードでは、ユーザー名、電子メールやフルネームを含んでいますが、私はここだけのユーザー名と電子メールのフィールドJWTのペイロードからすべてのフィールドを取得していない
を取得していたトークンをデコードするjwt.sign機能 -
ありながら、var token=jwt.sign({userid:user.username,email:user.email,fullname:user.fullname},secret,{expiresIn:'24h'});
、ここ
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
をMETHOD- jwt.verify
トークンdecoded-
{
"userid": "nitin.sachdev",
"email": "[email protected]",
"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
});