token & refresh token 机制总结
token & refresh token 机制总结
废话
我在项目上写了个配置页面,之前很简单直接登录,毕竟配置页面自己人用就没有做token机制,后来公司的安全审核不过,现在要加上token和刷新机制。小结一下。
token和刷新机制
token机制就是在登录成功后返回一个token,并缓存起来,之后每个请求头里带上token,后端验证不通过返回401,前端就直接跳转到登录页。这样就能防止直接访问某个链接就能跳到登录页的尴尬局面。
token刷新机制就是在使用的时候使用某个机制使得这个token不过期,不会跳转到登录页。而没有使用的时候token会过期,他隔得太久了再调接口就是401,就会跳到登录页。
两种token刷新机制
第一种(后端提供刷新接口)
客户端 | 服务端 | |
---|---|---|
--- | 发送username & password | ---> |
<--- | 返回accesstoken & refreshtoken | --- |
--- | 访问接口携带accesstoken | ---> |
<--- | 返回信息/401 | --- |
--- | accesstoken过期访问刷新接口携带refreshtoken | ---> |
<--- | 返回新的accesstoken/401 | --- |
--- | 访问接口携带新的accesstoken | ---> |
<--- | 返回信息/401 | --- |
这种情况下 refreshtoken可以设置的时间长一点,而accesstoken设置的时间短一点,我们固定一个用户活跃周期;
活跃周期 = token周期 * 2 ;
eg:活跃周期(at);token周期(et);accesstoken(5 min);refreshtoken(1 day);
用户在15:00登录,返回token生命周期(et)是[15:00-15:05];用户活跃周期为[15:00-15:10];
如果用户在15:06调用接口,携带accesstoken会返回401过期,此时在活跃周期范围内,则调用refreshtoken刷新接口,返回新的accesstoken;
此时:et[15:06-15:11],at[15:06-15:16];
如果用户在15:17分调用接口携带accesstoken会返回401过期,此时不再活跃周期内,则跳转到登录页;
第二种(靠前端cookie实现)
客户端 | 服务端 | |
---|---|---|
--- | 发送username & password | ---> |
<--- | 返回accesstoken | --- |
cookie存储设置过期时间 | ||
--- | 访问接口携带accesstoken | ---> |
<--- | 返回信息/401 | ---> |
调用成功,覆盖延长cookie过期时间 | ---> |
这种情况后端accesstoken可以设置的时间长一点;
前端将token存在cookie中,维护一个过期时间,每次调用接口成功后就覆盖延长这个过期时间,不调用接口的时候自然会超时了;
以上;
token & refresh token 机制总结的更多相关文章
- Access Token 与 Refresh Token【转载哒科普啊】
Access Token 与 Refresh Token access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因 ...
- Oauth2.0(三):Access Token 与 Refresh Token
access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...
- Oauth2.0:Access Token 与 Refresh Token
access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...
- asp.net core使用identity+jwt保护你的webapi(三)——refresh token
前言 上一篇已经介绍了identity的注册,登录,获取jwt token,本篇来完成refresh token. 开始 开始之前先说明一下为什么需要refresh token. 虽然jwt toke ...
- ASP.NET OAuth:解决refresh token无法刷新access token的问题
最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...
- ASP.NET OWIN OAuth:遇到的2个refresh token问题
之前写过2篇关于refresh token的生成与持久化的博文:1)Web API与OAuth:既生access token,何生refresh token:2)ASP.NET OWIN OAuth: ...
- ASP.NET OWIN OAuth:refresh token的持久化
在前一篇博文中,我们初步地了解了refresh token的用途——它是用于刷新access token的一种token,并且用简单的示例代码体验了一下获取refresh token并且用它刷新acc ...
- ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成
在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是: 1) System.Security.Crypt ...
- Web API与OAuth:既生access token,何生refresh token
在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_t ...
随机推荐
- 企业是否可以用CRM做邮件营销?
最近总有一些从事外贸,跨境电商的朋友问小Z:"我的企业能用CRM做邮件营销吗?" 我回答:"能,Zoho CRM系统不但能用来发营销邮件,还发得聪明.发得到位." ...
- 风变编程(Python自学笔记)第10关-工作量计算器
1.%f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数. 2.向上取整:ceil() 使用ceil()方法时需要导入math模块,例如 1 >>> ...
- 其他CSS属性
一.设置元素的颜色和透明度 a.color color 属性规定文本的颜色.这个属性设置了一个元素的前景色(在 HTML 表现中,就是元素文本的颜色):光栅图像不受 color 影响.这个颜色还会应用 ...
- C++知识点案例 笔记-6
1.三种友元函数 -非模板友元函数 -约束模板友元函数 -非约束模板友元函数 2.非类型参数 3.模板特化 1.三种友元函数 =====三种友元函数===== --1---非模板友元函数 #inclu ...
- shell基础之函数
shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式: func() { #指定函数名 command # ...
- Linux进阶之find命令、xshell速度慢的解决和Linux警告音的关闭
一.Linux警告音关闭方法 1. 修改/etc/inputrc配置文件 set bell-style none #取消该行注释 2. 修改~/.bashrc配置文件 在后面增加: setter ...
- C语言中位运算异或“∧”的作用
1.概念异或运算符"∧"也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即 0∧0=0,0∧1=1, 1^0=1,1∧1=0.运算 ...
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)
查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...
- MindSpore:自动微分
MindSpore:自动微分 作为一款「全场景 AI 框架」,MindSpore 是人工智能解决方案的重要组成部分,与 TensorFlow.PyTorch.PaddlePaddle 等流行深度学习框 ...