欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Token登录验证(附图)

程序员文章站 2022-07-02 23:44:38
...

什么是Token

token是由服务器生成的一串加密后的字符串,用来作为客户端进行请求的一个标识。
用户第一次成功登录后,服务器会针对这个用户生成一个token,用来标识这个用用户,并将生成的token返回给客户端,以后客户端只需要带着token来访问即可,不需要使用账号和密码来。

通过JWT生成Token

JWT(JSON Web Token)是一种跨域认证解决方案,它规定了一种Token的实现方式。
目前多用于前后端分离项目和OAuth2.0业务场景下。

JWT是基于Token的轻量级认证模式,服务端认证通过后,会生成一个JSON对象,经过签名后得到一个Token,再发回给用户。

		eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
		eyJ1c2VySWQiOjUsInJvbGVfaWQiOiIxIiwiZXhwIjoxNjA0MzA
		5NDI3LCJpc3MiOiJteS1wcm9qZWN0In0.
		QS4QTa3siUY9M7mWpEU2QfSsQ2oNzTMTE6IuOJjVl4I

JWT是一个很长的字符串,中间用(.)分割成三个部分。

JWT的三个部分:

  • Header(头部)Header 部分是一个 JSON 对象,描述 JWT 的元数据
  • Payload(负载)Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据
  • Signature(签名)Signature 部分是对前两部分的签名,防止数据篡改

注意,JWT 默认是不加密的,任何人都可以读到,所以不要把秘密信息放在Payload部分。

并将这三个JSON 对象使用 Base64URL 算法转成字符串

Token身份验证基本流程

  1. 用户使用账号密码请求登录
  2. 服务端验证账号密码
  3. 验证成功后,服务端会生成一个token,并将这个token返回给客户端
  4. 客户端收到这token后将它放在cookie或者本地存储
  5. 客户端再次向服务器发起请求时带上token
  6. 服务端收到请求,然后验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。

流程图

(字体潦草,见谅)
Token登录验证(附图)