JWT

 一、JWT

JWT:( JSON Web Token ) JWT  结构化令牌  https://jwt.io/

JWT 这种结构化体可以分为 HEADER(头部)、PAYLOAD(数据体)和 SIGNATURE(签名)三部分。

header.payload.signature

目前 OAuth 2.0 的令牌只支持一种类型,那就是 bearer 令牌

二、JWT授权为什么要在 Authorization标头里加个Bearer ?

Authorization : Bearer Token  为什么不写成  Authorization : Token。

这是因为 W3C 的 HTTP 1.0 规范,Authorization 的格式是:

Authorization: <type> <authorization-parameters>

Bearer 是授权的类型,常见的授权类型还有:

Basic 用于 http-basic 认证;
Bearer 常见于 OAuth 和 JWT 授权;
Digest MD5 哈希的 http-basic 认证 (已弃用)
AWS4-HMAC-SHA256 AWS 授权

三、JWT好处

 每次提到无状态的 JWT 时相信都会看到另一种基于 Session 的用户认证方案介绍,这里也不例外,Session 的认证流程通常会像这样。

这种方案有一些缺点:

  • 需要从内存或数据库里存取 session 数据
  • 扩展性差,对于分布式应用,需要实现 session 数据共享

JWT 正好可以解决这些问题。JWT 的魔法很简单,将需要使用到的用户数据等信息放入 JWT 里面,每次请求都会携带上,只要保证密钥不泄露,JWT 就无法伪造。

JWT包含用户信息,避免频繁调取数据库。

 

 

 

 

 

 

 

posted @ 2023-01-11 11:21  尘恍若梦  阅读(74)  评论(0编辑  收藏  举报