gpt4 book ai didi

node.js - Node : Sending JSON Web token to client with page redirect

转载 作者:搜寻专家 更新时间:2023-11-01 00:16:40 26 4
gpt4 key购买 nike

我正在使用 Node Express 构建我的后端服务器。此外,身份验证是我的应用程序使用 Passport-SAML 进行的。我正在使用 JWT 来维护用户 session 。所以流程是,

  1. 用户调用登录端点
  2. 他们被重定向到 SAML 身份提供商。
  3. 提供商验证用户并发回授权通过回调 URL 发送到服务器。
  4. 我正在使用 POST 回调 URL 进行身份验证,然后创建一个用户执行授权和 session 管理的 token 。

回调 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');

}
);

最佳答案

这里有一系列选项

Cookie

res.cookie('token', token, ...);
res.redirect(...);

网址参数

res.redirect(`/some/url?token=${token}`);

自定义 header

res.set('x-token', token);
res.redirect(...);

关于node.js - Node : Sending JSON Web token to client with page redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45882530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com