小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
您的位置:首页 > 个人随笔 > 专业技能

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

分类: 专业技能193个赞

对于初学者来说,可能很难会理解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小号的理解运用

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是否被更新, 若被检测到了,会自动更新到备份文件中, 若是在任务完成后没有检测到更新, 那么之后更新了 就失效了.


小米技术社区