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