Token
- 定义:令牌,访问资源接口(API)时所需要的资源凭证
一、Access Token
-
定义:访问资源接口(API)时所需要的资源凭证,存储在客户端 -
组成组成部分 说明 uid 用户唯一的身份标识 time 当前时间的时间戳 sign 签名,token 的前几位以哈希算法压缩成的一定长度的十六进制字符串 -
验证流程- 登录:客户端使用 username & password 请求登录
- 验证:服务端收到请求,验证 username & password
- 验证成功 → 服务端会签发一个 token 并把这个 token 发送给客户端
- 验证失败 → 登录失败
- 存储 token:客户端收到 token 以后,会把它存储起来,比如放在 cookie 里或者 localStorage 里
- 携带 token:客户端每次向服务端请求资源的时候需要携带服务端签发的 token(放在 HTTP 的 Header 中)
- 解析 token:服务端收到请求,解析客户端的 token 数据
- 验证成功 → 向客户端返回请求的数据
- 验证失败 → 拒绝请求,要求重新登录
二、Refresh Token
-
定义:专用于刷新 access token 的 token -
功能:减少重复登录操作,Access Token 失效时,客户端直接用 refresh token 去更新 access token,无需用户进行额外的操作 -
存储位置:服务器的数据库 -
工作流程
JWT
一、概述
- 定义:JSON Web Token(简称 JWT),一种认证授权机制,是目前最流行的跨域认证解决方案
- 功能:实现跨域请求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录(session 所有数据都保存在客户端,每次请求都发回服务器)
- 存储位置:HTTP 请求的头信息
Authorization字段中,格式为:Authorization: Bearer <token> - 基本格式:(Header.Payload.Signature)
二、组成部分
-
Header
-
定义:描述 JWT 的元数据(配置信息),记录令牌类型、签名算法等配置,由 Base64URL 算法转为字符串
-
示例
{ "alg": "HS256", // 签名算法类型 "typ": "JWT" // Token类型 }
-
-
Payload
-
定义:记录用户信息的数据(不是加密数据,不能存敏感信息)
-


2606

被折叠的 条评论
为什么被折叠?



