什么是token,为什么需要token
1.为什么需要token
- 随着互联网的发展,为了更安全,以及更好的用户体验,逐渐产生了token这个技术方案
- 之所以使用token是因为http/https协议本身是无状态的,不能进行信息的存储 (cookie可以进行信息存储,但存在一些限制)
- token的作用是为了加强用户信息安全性,而添加的一层验证,去验证用户是否已经登陆,以及是否是用户本身在登陆,进行操作
2.token原理
- token的本质就是一段加密的字符串
- 通过服务器将加密的信息颁发给前端,前端每次请求携带该认证信息,来确保当前的用户是用户本身,防止有人冒充该用户
- token就像一把钥匙,由服务器进行颁发给用户,持有正确的钥匙就能开正确的锁,持有的钥匙不正确,就无法打开对应的锁
- 不需要进行存储,只需要每次服务器根据token进行解密,并验证信息是否正确以及是否过期即可
// 原始信息 每个用户的用户信息都不同,过期时间根据设置时间与当前时间对比决定是否让用户重新登录
const token = {
过期时间:'2022-02-02 02:02:02',
当前用户:'Tom',
}
// 加密后 一段无规律的字符串 可以通过特定的运算重新恢复成为 token
const tokenSecret = 'ASD324235SFETWE'
3.无感刷新流程 refreshtoken
3.1 refreshtoken 的意义
- refreshtoken 的存在是为了让用户信息更加安全,并且让用户体验更加而采取的
- 试想,如果为了安全设置token每30s刷新一次,那么也就意味着用户每30s就需要登录一次,体验感很差
- 但是如果将token过期时间设置为2小时,则安全性将大大降低(即可能存在token被人获取,如果刷新时间间隔短,意味着被利用的几率就会降低)
- 如果方案更改为用户首次登录,发放给用户token与refreshToken,token真正过期时间为2小时,每30分钟需要通resfreshtoken去获取最新的token重新设置,并且要refreshtoken也会改变
- 这样做就能即提高安全性,也能保证用户体验感
- 图片说明

什么是token,为什么需要token的更多相关文章
- 关于 IdentityServer4 中的 Jwt Token 与 Reference Token
OpenID Connect(Core),OAuth 2.0(RFC 6749),JSON Web Token (JWT)(RFC 7519) 之间有着密不可分联系,对比了不同语言的实现,还是觉得 I ...
- 关于token和refresh token
最近在做公司的认证系统,总结了如下一番心得. 传统的认证方式一般采用cookie/session来实现,这是我们的出发点. 1.为什么选用token而不选用cookie/session? 本质上tok ...
- Access Token 与 Refresh Token【转载哒科普啊】
Access Token 与 Refresh Token access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因 ...
- 【微信】微信获取TOKEN,以及储存TOKEN方法,Spring quartz让Token永只是期
官网说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发人员须要进行妥善保存. access_token的存储至少要保留512个字符空间.ac ...
- 启xin宝app的token算法破解——token分析篇(三)
前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 本篇就将对token静态分析,其实很简单就可以搞 ...
- 【django后端分离】Django Rest Framework之认证系统之redis数据库的token认证(token过期时间)
1:登录视图 redis_cli.py文件: import redis Pool= redis.ConnectionPool(host='localhost',port=6379,decode_res ...
- token和refresh token
https://www.cnblogs.com/minirice/p/9232355.html 在spring boot中结合OAuth2使用JWT时,刷新token时refresh token一直变 ...
- Oauth2.0(三):Access Token 与 Refresh Token
access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...
- Python itsdangerous 生成token和验证token
代码如下 class AuthToken(object): # 用于处理token信息流程: # 1.更加给定的用户信息生成token # 2.保存生成的token,以便于后面验证 # 3.对用户请求 ...
- Oauth2.0:Access Token 与 Refresh Token
access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...
随机推荐
- nest.sh 脚本 发布服务
每次发布后端nest 直接执行一个脚本即可 给脚本赋值权限 chomd 777 nest.sh nest.sh 脚本 #!/bin/bash cd /root/gateway-study git pu ...
- [好文推荐] vue3 源码分析 mini-vue 写的不错
[阮一峰推荐]学习 vue3 源码的利器 git clone https://github.com/cuixiaorui/mini-vue.git
- 【VMware vSAN】全新vSAN 8 ESA快速存储架构配置文件服务并创建文件共享。
早在2020年,VMware就发布了vSphere7.vSAN7.VCF4等等产品的更新,当时随着云原生的火热,基于容器技术的现代应用程序快速发展,Docker.Kubernetes这些容器平台被广泛 ...
- String.equals(Object anObject)方法
首先注意,equals()方法接受的是Object类型的对象,并不一定是String类型. public boolean equals(Object anObject) { //两个对象地址是否一样, ...
- 【atcoder 293 F - Erase Subarrays】【动态规划】
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...
- 【牛客小白月赛51 F平均题】数论,前缀和
import java.io.IOException; import java.util.Scanner; public class Main { static int MOD = 100000000 ...
- 百度 Linux 运维工程师面试真题
百度 Linux 运维工程师面试真题 百度面了好久了,两个月了,估计都快成馊面了,一跟面条在走边边一不小心掉进了大海,于是 就有了汤面_经历非技术总结就两句话,幸运的是在朋友的帮助下顺利通过笔试,还认 ...
- python面向对象(绑定方法与非绑定方法)
# 一.绑定方法:特殊之处在于将调用者本身当做第一个参数自动传入 # 1)绑定给对象的方法:调用者是对象,自动传入的是对象 # 2)绑定给类的方法:调用者是类,自动传入的是类 # 类方法的应用 # 需 ...
- 使用SpringBatch读取csv文件
目录 1.需求 2.解决方案 3.注意事项 1.文件路径的获取 2.各个Step如果获取到ExecutionContext中的值 3.FlatFileItemReader使用注意 4.实现步骤 1.导 ...
- KingbaseES数据库配置Hikari数据源
Hikari是一个高性能的数据库连接池,它是Spring Boot 2.x中的默认数据源. 一.下载驱动 打开下面网址:选择对应平台的jdbc驱动程序. 人大金仓-成为世界卓越的数据库产品与服务提供商 ...