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

时间:2018-01-03 11:32:22

标签: node.js express local-storage ejs

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

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

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

req.cookies['authorization'];

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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