https://www.cnblogs.com/lufeiludaima/p/pz20190203.html

什么是token

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

  基于 Token 的身份验证

  1. 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。流程是这样的:
  2. 客户端使用用户名跟密码请求登录
  3. 服务端收到请求,去验证用户名与密码
  4. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  5. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  6. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  7. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
  8. APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回token到APP,以后APP请求时,
  9. 凡是需要验证的地方都要带上该token,然后服务器端验证token,成功返回所需要的结果,失败返回错误信息,让他重新登录。其中服务器上token设置一个有效期,每次APP请求的时候都验证token和有效期。

token的优势

  1.无状态、可扩展

在客户端存储的Tokens是无状态的,并且能够被扩展。基于这种无状态和不存储Session信息,负载负载均衡器能够将用户信息从一个服务传到其他服务器上。如果我们将已验证的用户的信息保存在Session中,则每次请求都需要用户向已验证的服务器发送验证信息(称为Session亲和性)。用户量大时,可能会造成  一些拥堵。但是不要着急。使用tokens之后这些问题都迎刃而解,因为tokens自己hold住了用户的验证信息。

  2.安全性

  请求中发送token而不再是发送cookie能够防止CSRF(跨站请求伪造)。即使在客户端使用cookie存储token,cookie也仅仅是一个存储机制而不是用于认证。不将信息存储在Session中,让我们少了对session操作。token是有时效的,一段时间之后用户需要重新验证。我们也不一定需要等到token自动失效,token有撤回的操作,通过token revocataion可以使一个特定的token或是一组有相同认证的token无效。

  3.可扩展性

  Tokens能够创建与其它程序共享权限的程序。例如,能将一个随便的社交帐号和自己的大号(Fackbook或是Twitter)联系起来。当通过服务登录Twitter(我们将这个过程Buffer)时,我们可以将这些Buffer附到Twitter的数据流上(we are allowing Buffer to post to our Twitter stream)。使用tokens时,可以提供可选的权限给第三方应用程序。当用户想让另一个应用程序访问它们的数据,我们可以通过建立自己的API,得出特殊权限的tokens。

  4.多平台跨域

  我们提前先来谈论一下CORS(跨域资源共享),对应用程序和服务进行扩展的时候,需要介入各种各种的设备和应用程序。Having our API just serve data, we can also make the design choice to serve assets from a CDN. This eliminates the issues that CORS brings up after we set a quick header configuration for our application.只要用户有一个通过了验证的token,数据和资源就能够在任何域上被请求到。Access-Control-Allow-Origin: *

  5.基于标准

  创建token的时候,你可以设定一些选项。我们在后续的文章中会进行更加详尽的描述,但是标准的用法会在JSON Web Tokens体现。最近的程序和文档是供给JSON Web Tokens的。它支持众多的语言。这意味在未来的使用中你可以真正的转换你的认证机制。

token原理

什么是token和token是怎么生成的相关推荐

  1. Flask简单调用Redis、MySQL和生成token及token验证

    项目地址:https://github.com/MasonYyp/myflask 1 安装python基础环境 # 安装flask pip install flask# 安装redis pip ins ...

  2. python token 访问控制_python 产生token及token验证

    1.前言 最近在做微信公众号开发在进行网页授权时,微信需要用户自己在授权url中带上一个类似token的state的参数,以防止跨站攻击. 在经过再三思考之后,自己试着实现一个产生token和验证to ...

  3. 【解析】Token to Token Vision Transformer

    Vision Transformer 的提出颠覆了我们以往对图像处理的方式,也开阔了Transformer 在CV方向上的潜力,但其有一些缺点,如需要 超大型数据集(JFT)预训练,才能达到现在CNN ...

  4. python token_python 产生token及token验证的方法

    1.前言 最近在做微信公众号开发在进行网页授权时,微信需要用户自己在授权url中带上一个类似token的state的参数,以防止跨站攻击. 在经过再三思考之后,自己试着实现一个产生token和验证to ...

  5. Token及Token经济

    一.Token 1.1 通证有三个要素 1.2 通证和区块链的结合 二.Token Economy 2.1 Token 价值的体现 2.2 区块链产业发展的三条不同路线 2.3 通证经济的简单理解 三 ...

  6. Token及Token验证流程

    什么是Token?为什么要使用它? Token实际就是在计算机身份验证中的令牌(临时)的意思. 当前端向后端发起数据请求的时候,后端需要对前端进行身份验证,但是我们又不想每次都输入用户名和密码,这是就 ...

  7. python怎么获取token值_python 产生token及token验证

    1.前言 最近在做微信公众号开发在进行网页授权时,微信需要用户自己在授权url中带上一个类似token的state的参数,以防止跨站攻击. 在经过再三思考之后,自己试着实现一个产生token和验证to ...

  8. python token过期_Python token及token验证

    注意仅可以在Python3中使用 token及token验证 涉及模块hmac与base64 hmac模块 简介 HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息 ...

  9. java实现api接口的token,基于Token的API接口认证机制

    Cookie Auth Cookie认证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象:通过客户端带上来Cookie对象来与服务器端的ses ...

  10. 简单介绍vue获取token实现token登录的示例代码

    最近新做了个vue项目,正好项目中有登录部分,本文就详细的介绍一下登录部分的实现,文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下 使用token做登录验证的思路大致如下: 1.在第一次登 ...

最新文章

  1. 关于 TStringList.Assign - 回复 u9cm 的问题
  2. WINDOWS SERVER 2003 AD中的5种操作主机
  3. Docker学习笔记
  4. C++堆和栈详解(转)
  5. Hadoop 开源调度系统zeus(二)
  6. 别人在忙挖矿,京东架构师却悄悄用区块链搞了件大事
  7. 数据库为date型,而前端要显示String型,问题解决
  8. Pywick:追求功能完备的PyTorch高级训练库
  9. linux的网卡部分
  10. Android 小技巧-- TextView与EditText 同步显示
  11. 帆软报表使用及设置日志打印sql
  12. 用Aspose.Words 从Word文档中提取表格数据
  13. 5 helloword 开发运行步骤
  14. NWT失败反省:做视频的多了,汝眼里怎么只有腾讯
  15. Android中性能优化积累
  16. ADO与ADO.NET的区别
  17. 水安ABC考试多选练习题库
  18. js编写计算圆周长和面积
  19. 方差、协方差和协方差矩阵
  20. 前缀和(C/C++)

热门文章

  1. 选举数据集 (2020 US Election)
  2. 2023最新信息管理毕业设计题目汇总
  3. 国航WIFI:安全性是否可以保障?
  4. c语言程序设计王延梅,医学超声原理 超声波的基本特征 机械波 纵波 波长、声速、频率(周期)公式:C = f  =  / T...
  5. 手机微信资料打印怎么打,微信接收的文档如何打印
  6. 绝杀慕尼黑,热血中不乏温情
  7. Ambari2.75集成flume1.9
  8. 写python,用哪个软件好。
  9. 中国计算机专业研究生排名,中国计算机专业排名
  10. 了解如何获得免费的笔记本电脑在线