1
我正在使用Node Express構建我的後端服務器。此外,身份驗證是我的應用發生在Passport-SAML上。我正在使用JWT來維護用戶會話。 所以流量,節點:通過頁面重定向發送JSON Web令牌給客戶端
- 用戶調用登錄端點
- 他們將被重定向到SAML身份提供者。
- 提供程序驗證用戶,並將回撥 的授權發送回服務器的回調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');
}
);
無法使用cookie,因爲我正在使用JWT來替換它。我將使用自定義標題。它似乎工作,但要確認這是你的解決方案:.post(passport.authenticate(config.passport.strategy,{...}),function(req,res){var token = Verify.getToken(req.user .saml); res.set('x-access-token',token); res.redirect('/');}); ? 通過這種方式,令牌將與頁面重定向一起發送到前端? 還是一個noob,請忍受我的業餘技能。 – shubhammakharia
從安全角度來看,由於採用上述解決方案,我們將向JWT發送自定義設置標題。我的應用程序安全性有多明智,我可以採取哪些措施來應對? – shubhammakharia
@shubhammakharia自定義標題的想法僅適用於在重定向服務器上將標題解析出來,然後使用HTML將其發送給客戶端的情況。我認爲在你的情況下,只有HTTP /簽名的cookie會是最好的,因爲你可以在任何時候訪問它,並且易於管理。在安全性方面,這是一個太大的話題,因爲它依賴於各種各樣的東西,因此作爲10的入門者,儘管這裏有一些[好的提示](https://stormpath.com/blog/jwt-the正確的方式)如何使用JWT。 – James