大家好,我是橘长,昨天分享了 「 OAuth 2.0 中的四种授权许可机制 」,大家可以自行回顾一下具体是哪四种,每一种的特点、适用的业务场景,最完备的授权码许可机制的流程是什么。
今天橘长给大家分享「 令牌机制」。
一、OAuth 2.0 的核心是什么?
回顾之前 OAuth 第一篇文章中用户访问客户的故事,有一个关键名词临时访问二维码
当用户出示一系列信息和操作之后拿到这个二维码,它就可以去见到客户了。
这个二维码回到 OAuth 中,其实就是令牌,那么具体来看令牌到底是什么呢?
其实就是授权之后的结果,前面做的一系列操作都是为了获取最终这个令牌,有了令牌凭据,才能去访问这个令牌能请求的路由、服务、资源等。
可见 OAuth 2.0 的核心就是颁发访问令牌,使用访问令牌。
二、OAuth 2.0 中的令牌
OAuth 官网没有限定令牌的格式,但目前只支持一种,就是 bearer 令牌。
可以是随机字符串,也可以是自定义的数据结构,但都要符合三个条件。
唯一性、不连续、不可猜。
三、JWT
1、是什么
JSON Web Token 是一种基于 RFC7519 协议的开放标准,定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全的传输数据。
简单理解:其实是一组自定义的结构化数据,通过结构化的思维去生成 token
一方面是使得返回给客户端的数据有意义
另外一方面是自编码能力,扩展性强。
此外还可以通过签名来保护数据安全,JWT 是需要在 HTML 和 HTTP 等环境下传输的
一方面是需要做 URLEncode(编码)保障不乱码且不丢失数据
另外一方面是做加密,避免失窃。
官方文档:JSON Web Token Introduction - jwt.io
橘长对其做了翻译:technical_document_translation/JWT.md at main · AFlymamba/technical_document_translation · GitHub
2、组成
内部