cookie

cookie中的token取不到?
参考:https://segmentfault.com/q/1010000016569701
评论里说:
如果cookie是http-only的话,js中是无法获取的。不是的话可以通过document.cookie来获取。而是否设置http-only则是后台决定的。

为什么有token:
https://blog.csdn.net/qq_34309704/article/details/80572077
https://blog.csdn.net/qq_38553333/article/details/80055521
如果后端cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击 Cross SiteScript,跨站脚本攻击
后端JWT:https://ninghao.net/blog/2834
JWT 标准的 Token 有三个部分:
header(头部)、payload(数据)、signature(前面)

token中间用点分隔开,并且都会使用 Base64 编码,所以真正的 Token 看起来像这样:

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc

头部都是同样的信息,所以都为:eyJhbGciOiJIUzI1NiJ9

登录login后,登录接口会在浏览器存token(access_token和session_token),然后每5分钟refreshToken会替换这个token(调用接口的时候,会在response头里设置cookie,设置两次,设置access_token和session_token,此时request头里还是旧的token;接口成功后,浏览器中的cookie会替换为新的token);

这个旧的token超过5分钟也是可以用的,只是调用接口成功后会替换为新的token;

但是,如果超长时间(设置的值:eg:30min)后,没有调用接口,那么token一直没有更新,此时,如果你在调用接口时候,使用的仍是旧token,超过临界值,此时token失效,就会报错(eg:401),跳转到登录页去(且退出登录)!
请求头里为旧的token,响应头里:

set-cookie: access_token=""; path=/; domain=.xxxx.com; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:00 GMT
set-cookie: refresh_token=""; path=/; domain=.xxxx.com; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:00 GMT
set-cookie: session_token=""; path=/; domain=.xxxx.com; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:00 GMT
status_code: 401

token为空,时间为1970年,

cookie和session详解:
https://www.cnblogs.com/andy-zhou/p/5360107.html

JavaScript:alert(document.cookie);

https://www.cnblogs.com/zhuanzhuanfe/p/8010854.html

maven
jshipster
jwt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值