passport.authenticate('local-register',{
successRedirect: '/login',
failureRedirect: '/path_to_greatness',
})(req, res, next);
我正在编写一个无状态的API,因此上面的方法就像successRedirect不能满足我的需求。但是我还是想使用护照层,我该怎么回电?
答案 0 :(得分:1)
您可以将回调传递给passport.authenticate
,这应该适合各种用例。传递回调时,您必须自己创建会话(假设身份验证成功)。 (docs)
这是一个简单的使用示例:
function handler(req, res, next) {
// assuming we're using a "local" strategy
passport.authenticate('local', (err, user, params) => {
if (err) return next(err)
if (!user) return next(new Error('Authentication Failed'))
// user is authenticated, create a session
req.logIn(user, (err) => {
if (err) return next(err)
// handle response
res.status(200).json({ some: 'data' })
})
})(req, res, next)
}