【发布时间】:2018-05-09 17:59:45
【问题描述】:
我不知道发生了什么,但我的 Passport Jwt Auth 不再有效。
在 app.js 中
app.use(passport.initialize());
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
done(null, user);
});
passport.use(new JwtStrategy({
secretOrKey: jwtSecret,
jwtFromRequest: JwtExtract.fromAuthHeaderAsBearerToken()
}, function (payload, done) {
console.log("Auth : JwtStrategy");
moduleUser.User.findById(payload._doc._id)
.exec()
.then(function (user) {
if (user) done(null, user);
else done(null, false);
}
)
.catch(function (err) {
return done(err, false);
});
}
));
注意:console.log("Auth : JwtStrategy");永远不会被调用
我的登录 API
router.post('/login', function (req, res) {
if (req.body.username && req.body.password) {
moduleUser.User.findOne({username: req.body.username, password: req.body.password})
.exec()
.then(function (user) {
if (user) {
res.status(200).json({
message: 'Login successful',
token: 'JWT ' + jwt.sign(user.toObject(), jwtSecret, {expiresIn: '14 days'})
});
} else {
res.status(404).json({
message: 'Please enter valid login details'
});
}
})
} else {
res.status(401).json({
message: 'All information not provided'
});
}
});
还有我不工作的私人路线
router.get('/private', passport.authenticate('jwt', {session: false}),
function (req, res) {
res.send('respond with a resource!!!!');
}
);
`
我总是收到 401 作为响应
网址:http://localhost:5000/users/private
Headers-> 授权:JWT eyJhb......
我在这里做错了吗?任何帮助表示赞赏
【问题讨论】:
-
有人吗?没有帮助?
标签: node.js express jwt passport.js