Token

611 阅读2分钟

什么是token

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

  1. 基于Token的身份验证
  • 使用基于token的身份验证方法,在服务端不需要存储用户的登记记录。流程是这样的:
  • 客户端使用用户名和密码请求登录
  • 服务端收到请求,去验证用户名与密码
  • 验证成功后,服务端会签发一个Token,再把这个Token发送给客户端
  • 客户端收到Token以后可以把他存储起来,比如放在Cookie里或者Local Storage里
  • 客户端每次想服务器端请求资源的时候后需要带上服务器签发的Token
  • 服务端收到请求,然后去验证客户端请求里面带着的Token,如果验证成功,就向客户端返回请求的数据
  • APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回token到APP,以后App请求的时,凡是需要验证的地方都要带上token,然后服务器端验证token,成功返回所需要的结果,失败返回错误信息。其中服务器上token设置一个有效期,每次app 请求的时候都验证token和有效期。
  1. token的优势
  • 无状态、可扩展:在客户端存储的token是无状态的,并且能够被扩展。基于这种无状态和不存储session信息,负载均衡器能够将用户信息从一个服务传到其他服务器上。如果我们将已验证用户的信息保存在session中,则每次请求都需要用户想已验证服务器发送验证信息。用户量大时,可能会造成一些拥堵
  • 安全性:请求中发送token而不再是发送cookie能够防止跨站请求伪造。
  • 可扩展性
  • 多平台跨域
  • 基于标准