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. 一款开源、免费、跨平台的Redis可视化管理工具

    前言 经常有小伙伴在技术群里问:有什么好用的Redis可视化管理工具推荐的吗?, 今天大姚给大家分享一款我一直在用的开源.免费(MIT License).跨平台的Redis可视化管理工具:Anothe ...

  2. 基于泰凌微的TLSR8355芯片的2.4G无线私有协议PCBA设计调试总结

    一 前记 经常做物联网的类的产品,TLSR8355凭借着它的射频距离远,功能强大等优点成为很多客户的首选.TLSR8355系列专用于2.4GHz射频系统芯片解决方案,如零售/物流.专用网络.Beaco ...

  3. 生成文件名为系统时间的C源码实例

    一 最近遇到了一个需要根据时间记录文件名的.先写一个实例来实战: #include<stdlib.h> #include<time.h> #include<stdio.h ...

  4. 已安装docker-compose,安装harbor时还是提示docker-compose未安装或者Permission denied的解决方案

    安装Harbor时,下载安装了docker-compose并赋予权限 sudo curl -L "https://github.com/docker/compose/releases/dow ...

  5. socket编程流程

    字节序转换(hton) #include <netinet/in.h> unsigned long int htonl(unsigned long int hostlong); unsig ...

  6. cpp面向对象

    面向对象编程 目录 面向对象编程 类 拷贝构造函数 常量函数 友元 友元函数 友元类 静态成员 重载函数 函数重载 操作符重载 继承 多态 虚函数 虚析构函数 1.虚析构函数的作用:避免内存泄漏. 2 ...

  7. tableau 工作表分页

    原创优阅达数据科技有限公司 https://mp.weixin.qq.com/s?__biz=MzA5MTU3NDI2NQ==&mid=2649465570&idx=1&sn= ...

  8. Mac M芯片使用PD安装centos7无页面安装

    1.选择Centos镜像 点击继续 设置虚拟机名称: 点击创建 : 选择第一个回车开始下载系统,下载完成进入设置页面,首先输入 1 设置语言: 进入语言设置,选择77普通话: 选择c继续,又回到系统配 ...

  9. Codeforces Round #726 (Div. 2)

    CF1537A Arithmetic Array 洛谷传送门 CF1537A 分析 用这 \(n\) 个数的总和 \(sum\) 判断: 如果 \(sum<n\) 直接用 \(n-sum+1\) ...

  10. OpenHarmony应用开发之自定义弹窗

     本文转载自<OpenHarmony应用开发之自定义弹窗>,作者:zhushangyuan_ 应用场景 在应用的使用和开发中,弹窗是一个很常见的场景,自定义弹窗又因为极高的自由度得以广泛应 ...