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的更多相关文章

  1. 关于 IdentityServer4 中的 Jwt Token 与 Reference Token

    OpenID Connect(Core),OAuth 2.0(RFC 6749),JSON Web Token (JWT)(RFC 7519) 之间有着密不可分联系,对比了不同语言的实现,还是觉得 I ...

  2. 关于token和refresh token

    最近在做公司的认证系统,总结了如下一番心得. 传统的认证方式一般采用cookie/session来实现,这是我们的出发点. 1.为什么选用token而不选用cookie/session? 本质上tok ...

  3. Access Token 与 Refresh Token【转载哒科普啊】

    Access Token 与 Refresh Token   access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因 ...

  4. 【微信】微信获取TOKEN,以及储存TOKEN方法,Spring quartz让Token永只是期

    官网说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发人员须要进行妥善保存. access_token的存储至少要保留512个字符空间.ac ...

  5. 启xin宝app的token算法破解——token分析篇(三)

    前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 本篇就将对token静态分析,其实很简单就可以搞 ...

  6. 【django后端分离】Django Rest Framework之认证系统之redis数据库的token认证(token过期时间)

    1:登录视图 redis_cli.py文件: import redis Pool= redis.ConnectionPool(host='localhost',port=6379,decode_res ...

  7. token和refresh token

    https://www.cnblogs.com/minirice/p/9232355.html 在spring boot中结合OAuth2使用JWT时,刷新token时refresh token一直变 ...

  8. Oauth2.0(三):Access Token 与 Refresh Token

    access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...

  9. Python itsdangerous 生成token和验证token

    代码如下 class AuthToken(object): # 用于处理token信息流程: # 1.更加给定的用户信息生成token # 2.保存生成的token,以便于后面验证 # 3.对用户请求 ...

  10. Oauth2.0:Access Token 与 Refresh Token

    access token 是客户端访问资源服务器的令牌.拥有这个令牌代表着得到用户的授权.然而,这个授权应该是临时的,有一定有效期.这是因为,access token 在使用的过程中可能会泄露.给 a ...

随机推荐

  1. snipaste 替换 微信截图快捷键 F3贴图功能实在是太帅了 - 软件推荐

    snipaste 替换 微信截图快捷键 这个软件很久之前就知道,一直也没觉得可以替换微信的截图功能,毕竟能懒就懒. 今天同事又推荐 用了下,觉得确实ok. https://zh.snipaste.co ...

  2. python3中print()函数打印多个变量值

    第一种方法: print("变量1", file_name, "变量2", new_name) print("变量1", file_name ...

  3. Python isinstance() 函数含义及用法解析

    描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关 ...

  4. git clone error: RPC failed; curl 18 transfer closed with outstanding read data remaining

    备忘 git clone比较大的工程时,出现这种错误:error: RPC failed; curl 18 transfer closed with outstanding read data rem ...

  5. python高级技术(线程)

    一 线程理论 1 有了进程为什么要有线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率.很多人就不理解了,既然进程这么优秀,为什么还要线程 ...

  6. Retrofit源码分析

    目录介绍 1.首先回顾Retrofit简单使用方法 2.Retrofit的创建流程源码分析 2.1 Retrofit对象调用Builder()源码解析 2.2 Retrofit对象调用baseUrl( ...

  7. 基于pytorch的图像训练识别

    一.准备数据集 分为测试集和训练集,文件如下排放 二.开始识别 数据集准备好后,即可导入到模型开始训练,运行下列代码 import time from torch.utils.tensorboard ...

  8. 《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南 - 第9章

    本章勘误: 暂无,等待细心的你告诉我哦. 本章注解: 暂无 本章释疑: 暂无,等待你的提问 致谢: MVP 林德熙 MVP 吕毅 sPhinX 相关链接 试读记录

  9. KingbaseES V8R3 集群运维系列 -- sync_flag参数配置

    ​ 案例说明: 在KingbaseES V8R3集群一主二备的架构中,配置了流复制为同步(sync)模式,但是集群启动后,流复制状态中显示备库是async模式(备库和主库数据已经同步),从备库的rec ...

  10. Hybrid-PSC:基于对比学习的混合网络,解决长尾图片分类 | CVPR 2021

     论文提出新颖的混合网络用于解决长尾图片分类问题,该网络由用于图像特征学习的对比学习分支和用于分类器学习的交叉熵分支组成,在训练过程逐步将训练权重调整至分类器学习,达到更好的特征得出更好的分类器的思想 ...