当前位置: 首页 > news >正文

token干什么用_什么是TOKEN?Token小号的理解运用,拼多多,知乎,快手,抖音的Token是什么意思...

对于初学者来说,可能很难会理解Token,经常会在互联网上看到出售各种渠道的token,那么token到底是什么?其原理又是什么?

首先和Token相对应的有一个Session,  what?怎么又懵逼了?

Session又是什么?当我们理解完Session的原理后就能很快的理解Token了

传统的Seeion验证

一般,当我们登陆账号后,Http协议进行数据的提交,服务器接收到用户帐号和密码进行验证,在之后的一系列操作,因为http协议本身是一种无状态的协议,再下一次请求必须重新发送一次帐号和密码来进行认证。

根据http协议我们没办法做一个长期的验证,为了让应用能够识别身份,我们需要在服务端进行身份的保存,我们用Session进行保存,这就是传统的session认证。

但是他有致命的缺点:Session保存是使用的内存,当用户量大的时候会对服务器增加很大的压力。

我们再来看看Token

Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

都是客户端和服务器通讯用的那么Token和Seeion它们的区别是什么?

Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

豁然开朗吧?

虽然作用一样,但是最大的区别在于Seeion的令牌保存在服务器,而Token的令牌保存在自己本地的客户端

我好像明白了,但是我记得有个东西叫cookie是保存在本地的,cookie和Token一样吗?

它们其实还有有区别的

token和cookie的五点异同:

①:token和cookie一样都是首次登陆时,由服务器下发,都是当交互时进行验证的功能,作用都是为无状态的HTTP提供的持久机制。

②:token存在哪儿都行,localstorage或者cookie。

③:token和cookie举例,token就是说你告诉我你是谁就可以。

cookie 举例:服务员看你的身份证,然后给你一个编号,以后,进行任何操作,都出示编号后服务员去看服务器上的身份证库查你是谁。

token 举例:直接给服务员看自己身份证

④:对于token而言,服务器不需要去查看你是谁,不需要保存你的会话。当用户logout退出的时候cookie和服务器的session都会注销;但是token只是注销浏览器信息,不查库。

⑤:token优势在于,token由于服务器端不存储会话,所以可扩展性强,token还可用于APP中。

关于: Token,Cookie和Session三者的区别可以详情查看: Token,Cookie和Session三者的区别

综上所述,token的优势有以下几点

token:完全由应用管理,所以它可以避开同源策略

token:可以避免 CSRF 攻击

token:可以是无状态的,可以在多个服务间共享

token的分类

访问令牌(Access Tokens)是Windows操作系统安全性的一个概念。一个访问令牌包含了此登陆会话的安全信息。

会话令牌(Session Token)用于解决表单重复提交问题,当客户端提交一次之后(也提交了token并且匹配服务器token)服务器接受成功以后将更新token所以客户端再次提交token将不再匹配。

接口静态token

客户端请求服务器将静态token直接提交给服务器

服务器对令牌进行验证并返回数据

token为什么会失效?

以拼多多为例:

Token其实除了被人顶掉的失效之外, 还有一种失效方式, 是拼多多动态更新. 那么拼多多动态更新的规则是什么?

自拼多多客户端从4.20版本开始,  就有了动态更新的行为, token成功登录到客户端之后, 会有一定概率会被更新,  这个时间是不确定的,  有可能是登录成功后马上更新, 有可能是10几分钟  甚至几十分钟.  然而软件有个检测机制, 在任务执行过程中会检测Token是否被更新, 若被检测到了,会自动更新到备份文件中, 若是在任务完成后没有检测到更新, 那么之后更新了 就失效了.

相关文章:

  • GCC for Win32 开发环境介绍(3)
  • m3u8手机批量转码_阿里云视频转码批量提交(mp4 to m3u8)
  • 什么项目可以发布?一切竭可外包——CSDN外包频道(57)
  • db2数据库连接数 linux_Db2数据库在Linux下的安装和配置
  • 丙戌年三伏第8天,雷雨交加,我彻底失去了你!
  • jetson nano 系统镜像制作_Jetson Nano 修改源镜像
  • 天融信防火墙重置配置_天融信防火墙怎么配置路由
  • 成为项目顾问的标准——客户满意度——CSDN外包实践(58)
  • Swing组件响应事件与自身重绘
  • 精密制造业行业_精密制造业的发展:精密制造业的深度报告
  • ASP.NET项目怎样进行管理?(VSS的使用)
  • nuxt 全局css_Nuxt开发经验分享,让你踩少点坑!
  • 能力越强,责任越重!——朱学恒和他主持的OOPS计划!
  • alexnet的程序代码实现及解释_AlexNet
  • python高阶技巧_干货分享:Python开发的高级技巧
  • ES6指北【2】—— 箭头函数
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CentOS7简单部署NFS
  • Golang-长连接-状态推送
  • java中的hashCode
  • learning koa2.x
  • Material Design
  • Python进阶细节
  • spark本地环境的搭建到运行第一个spark程序
  • 对象引论
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用agvtool更改app version/build
  • 数据科学 第 3 章 11 字符串处理
  • 探索 JS 中的模块化
  • 学习HTTP相关知识笔记
  • 运行时添加log4j2的appender
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 《码出高效》学习笔记与书中错误记录
  • MPAndroidChart 教程:Y轴 YAxis
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Python 之网络式编程
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • (3)选择元素——(17)练习(Exercises)
  • (安卓)跳转应用市场APP详情页的方式
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (编译到47%失败)to be deleted
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .“空心村”成因分析及解决对策122344
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET CORE使用Redis分布式锁续命(续期)问题