【发布时间】:2018-02-03 13:41:51
【问题描述】:
我正在使用 Node Express 来构建我的后端服务器。此外,身份验证是我的应用程序使用 Passport-SAML 进行的。我正在使用 JWT 来维护用户会话。 所以流程是,
- 用户在登录端点调用
- 它们被重定向到 SAML 身份提供者。
- Provider 验证用户并发回授权 通过回调 URL 发送到服务器。
- 我正在使用 POST 回调 URL 进行身份验证,然后创建一个 用户执行授权和会话管理的令牌。
回调 POST 端点也有一个页面重定向。到目前为止,我了解到 res.status 和 res.redirect 不能在同一个端点中,原因很明显。我一直在努力寻找正确的方法,非常感谢任何帮助。
router.route('/login')
.get(
passport.authenticate(config.passport.strategy,
{
successRedirect: '/',
failureRedirect: '/login'
})
);
router.route(config.passport.saml.path)
.post(
passport.authenticate(config.passport.strategy,
{
failureRedirect: '/',
failureFlash: true
}),
function (req, res) {
res.redirect('/');
var token = Verify.getToken(req.user.saml);
return res.status(200).json({
status: 'Login successful!',
success: true,
token: token
});
console.log(token,'yes');
}
);
【问题讨论】:
标签: node.js express jwt passport.js json-web-token