在浏览器的本地存储中保存身份验证

问题描述 投票:1回答:1

我正在使用带有EJS的Node Express。我已经使用JWT构建了用户身份验证,并使用以下代码将生成的令牌存储在Cookie中

res.cookie('authorization', token, {maxAge: 3 * 60 * 60 * 1000});

在验证时我也可以很容易地从cookie中读取它

req.cookies['authorization'];

使用此方法,我不必在前端执行任何与身份验证相关的代码。但我在某处读到,最佳做法是将其存储在浏览器的本地存储中。

localStorage.setItem("authorization", "..object..");

这段代码似乎是前端代码。这意味着我必须将我的令牌发送到前端,然后将其保存到localStorage。

这可以在不将令牌发送到前端的情况下完成吗?

node.js express local-storage ejs
1个回答
3
投票

你正在使用cookies。要使用本地存储,您需要将令牌发送回前端(经过验证)并将其附加到每个后续请求中。 javascript可以访问本地存储,并且容易受到xss攻击。最好使用带有HTTPOnly标志的cookie。

© www.soinside.com 2019 - 2024. All rights reserved.