27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
对于初学者来说,可能很难会理解Token,经常会在互联网上看到出售各种渠道的token,那么token到底是什么?其原理又是什么?
首先和Token相对应的有一个Session, what?怎么又懵逼了?
Session又是什么?当我们理解完Session的原理后就能很快的理解Token了
一般,当我们登陆账号后,Http协议进行数据的提交,服务器接收到用户帐号和密码进行验证,在之后的一系列操作,因为http协议本身是一种无状态的协议,再下一次请求必须重新发送一次帐号和密码来进行认证。
根据http协议我们没办法做一个长期的验证,为了让应用能够识别身份,我们需要在服务端进行身份的保存,我们用Session进行保存,这就是传统的session认证。
但是他有致命的缺点:Session保存是使用的内存,当用户量大的时候会对服务器增加很大的压力。
我们再来看看Token
Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
都是客户端和服务器通讯用的那么Token和Seeion它们的区别是什么?
Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
豁然开朗吧?
虽然作用一样,但是最大的区别在于Seeion的令牌保存在服务器,而Token的令牌保存在自己本地的客户端
我好像明白了,但是我记得有个东西叫cookie是保存在本地的,cookie和Token一样吗?
它们其实还有有区别的
①: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:可以是无状态的,可以在多个服务间共享
访问令牌(Access Tokens)是Windows操作系统安全性的一个概念。一个访问令牌包含了此登陆会话的安全信息。
会话令牌(Session Token)用于解决表单重复提交问题,当客户端提交一次之后(也提交了token并且匹配服务器token)服务器接受成功以后将更新token所以客户端再次提交token将不再匹配。
接口静态token
客户端请求服务器将静态token直接提交给服务器
服务器对令牌进行验证并返回数据
以拼多多为例:
Token其实除了被人顶掉的失效之外, 还有一种失效方式, 是拼多多动态更新. 那么拼多多动态更新的规则是什么?
自拼多多客户端从4.20版本开始, 就有了动态更新的行为, token成功登录到客户端之后, 会有一定概率会被更新, 这个时间是不确定的, 有可能是登录成功后马上更新, 有可能是10几分钟 甚至几十分钟. 然而软件有个检测机制, 在任务执行过程中会检测Token是否被更新, 若被检测到了,会自动更新到备份文件中, 若是在任务完成后没有检测到更新, 那么之后更新了 就失效了.
本站内容均为小米原创,转载请注明出处:小米技术社区>> 什么是TOKEN?Token小号的理解运用,拼多多,知乎,快手,抖音的Token是什么意思