全栈开发:TypeScript、React、Next.js、MongoDB、Docker 完全教程指南 - 第九章 使用 OAuth 进行授权(2)

创建 JWT 令牌

大多数 Bearer 令牌是 JWT,而授权服务器会自动发放它们,了解它们包含的信息是有益的。本节将带你完成创建天气服务应用程序的示例 OAuth JWT 的过程。JWT 是由三个用点(.)分隔的部分组成的字符串:头部、负载和签名。前两个部分是 Base64 编码的 JSON 对象,而签名是前两者的校验和。

头部

我们创建的第一个字符串是头部,它定义了基本的元数据,例如令牌的类型和用于签名算法的签名。示例 9-1 显示了在 JavaScript 中创建一个带有最基本元数据的简单头部。

javascript

const headerObject = {
  "typ": "JWT",
  "alg": "HS256"
}

示例 9-1:OAuth2 天气服务的 JWT 头部

我们将天气服务的令牌类型设置为 JWT,并指定我们使用 HMAC-SHA-256 算法来稍后计算签名。最后,我们将 JSON 对象存储在一个常量中,以便稍后使用。

负载

接下来,我们创建第二个字符串,即负载,它存储令牌的数据。负载的每个属性称为声明。在 OAuth 中,声明描述用户对象,通常是会话数据。JWT 规范包含三种类型的声明:注册声明、公共声明和私有声明。
 

注册声明

JWT 有七个注册声明,每个声明由三个字母组成。虽然一般的 JWT 中不需要这些声明,但 OAuth JWT 必须包含 iss、sub、aud 和 exp 注册声明。

发行者声明(iss)

发行者声明(iss)包含发布 JWT 的实体的唯一标识符。一个好的值可能是应用程序的 URL,如示例 9-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lee达森

创作不易,感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值