Jwt 中 token应该存储到哪里?

Posted Lemo_wd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jwt 中 token应该存储到哪里?相关的知识,希望对你有一定的参考价值。

关于 token 的存储问题

JWT:
csrf 攻击无法获取第三方的 cookie,而是直接使用 cookie进行查询的时候会自动携带 cookie。
xss攻击通过代码注入可以获取 cookie。需要设置转义。
 
方式一、客户端使用 cookie直接认证,需要设置 cookie为 httpOnly,可以防止 xss攻击。但是无法防止 csrf攻击。需要设置伪随机数 X-XSRF-TOKEN
 
方式二、 客户端使用 auth授权头认证,token存储在 cookie中,需要防止xss攻击。可以防止 csrf攻击,因为必须获取到 cookie的值并放到 authorization,而 cookie不能跨域请求到。(适用于 ajax请求或者 api请求,可以方便的设置 auth头)
 
方式三、可以将token存储在 localstorage里面,在一个统一的地方复写请求头,让每次请求都在header中带上这个token, 当token失效的时候,后端肯定会返回401,这个时候在你可以在前端代码中操作返回登陆页面,清除localstorage中的token。(适用于 ajax请求或者 api请求,可以方便的设置 auth头)
 
设置 HTTPS,可以防止提交时的用户名或者密码被拦截或读取。

以上是关于Jwt 中 token应该存储到哪里?的主要内容,如果未能解决你的问题,请参考以下文章

我应该在哪里保存客户端的 JWT 以供将来请求?

在 .net 核心 web api 中存储 JWT 令牌的位置?

在哪里存储 JWT 令牌?

当 Laravel 用作客户端时,JWT 存储在哪里进行身份验证?

2019 年我应该在哪里存储我的 JWT,localStorage 真的不安全吗?

用户对象是不是应该存储在 JSON Web Token 中?