passport.authenticate('local-register',{
successRedirect: '/login',
failureRedirect: '/path_to_greatness',
})(req, res, next);
我在写一个无状态的API,所以上面的方法就像successRedirect不会满足我的需求。但我仍然想使用护照层,我该如何回调?Passport auth callback而不是重定向
passport.authenticate('local-register',{
successRedirect: '/login',
failureRedirect: '/path_to_greatness',
})(req, res, next);
我在写一个无状态的API,所以上面的方法就像successRedirect不会满足我的需求。但我仍然想使用护照层,我该如何回调?Passport auth callback而不是重定向
您可以将回调传递给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)
}
这是相当开放的。你可以尝试一下并询问它是否不起作用? – icedwater