最佳答案
我正在使用 React SPA、 Express、 Express-session、 Passport 和 JWT。 我对存储令牌的一些不同的客户端存储选项感到困惑: Cookies、 Session 和 JWT/Passport。
令牌是否必须存储在 cookie 中,即使我可以将它们存储在 req.sessionID
中?
许多网站使用 cookies 来存储购物车代币。到目前为止,我已经存储了基于会话 ID 的购物车数据,没有添加任何 cookie。
因此,当用户访问我的网站,我将匹配它与他们的 然后检索数据库中的数据,如购物车和用户会话。
我需要存储 Cookie 吗? 我可以通过 req.sessionID
访问它来获得所需的数据。
第二个
我使用 passport-google-oauth20
.1进行了身份验证。成功登录后,数据将保存到会话中。要发送给客户端,我必须通过 URL 查询 ?token='sdsaxas'
发送它。
在这种情况下,我得到了很多不同的意见。有人保存它 有人通过使用 JWT 将其转换为令牌,从而将其保存到 cookie 中。
jwt.sign(
payload,
keys.jwt.secretOrPrivateKey,
{
expiresIn:keys.jwt.expiresIn // < i dont know what is this expired for cookies or localstorage ?
}, (err, token) => {
res.redirect(keys.origin.url + "?token=" + token);
});
我是否可以通过使用 sessionID (不使用 cookie 或 localStorage)来存储与会话相关的所有内容?
只需要进行一次或每次页面刷新并检索数据,然后保存到 redux 中,因为我使用 React SPA。