节点:发送JSON Web令牌到页面redirect的客户端

我正在使用Node Express来构build我的后端服务器。 此外,身份validation是我的应用程序与Passport-SAML发生。 我正在使用JWT来维护用户会话。 所以stream量是,

  1. 用户在login端点中调用
  2. 他们被redirect到SAML身份提供者。
  3. 提供程序validation用户,并在callbackURL中将授权发送回服务器。
  4. 我正在使用POSTcallbackURL进行身份validation,然后为用户创build令牌以执行授权和会话pipe理。

callbackPOST端点也有一个页面redirect。 从目前为止我学到的是res.status和res.redirect不能在相同的端点出于显而易见的原因。 我一直在试图find正确的方法,任何帮助,不胜感激。

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'); } ); 

你在这里有一系列的select

曲奇饼

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

url参数

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

自定义标题

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