26 凭证:系统如何保证与用户之间的承诺是准确完整且不可抵赖的?
你好,我是周志明。
在第24讲我给你介绍OAuth 2.0协议的时候,提到过每一种授权模式的最终目标都是拿到访问令牌,但我并没有讲拿回来的令牌应该长什么样子,反而还挖了一些坑没有填,即为什么说OAuth 2.0的一个主要缺陷是令牌难以主动失效。
所以,这节课我们要讨论的主角就是令牌了。我会带你了解令牌的结构、原理与实现,让你明确系统是如何保证它和用户之间的承诺是双方当时意图的体现、是准确完整且不可抵赖的;另外我还会跟你一起看看,如果不使用OAuth 2.0的话,通过最传统的状态管理机制的方式,系统要如何完成认证和授权。
好,那接下来,我们就先来看看HTTP协议中最传统的状态管理机制,Cookie-Session是如何运作的吧。
Cookie-Session:HTTP的状态管理机制
我们应该都知道,HTTP协议是一种无状态的传输协议,也就是协议对事务处理没有上下文的记忆能力,每一个请求都是完全独立的。但是我想,肯定很多人都没有意识到HTTP协议无状态的重要性。
为什么这么说呢?假如你做了一个简单的网页,其中包含了1个HTML、2个Script脚本、3个CSS,还有10张图片,那么这个网页要想成功地展示在用户屏幕前,就需要完成16次与服务器的交互来获取这些资源。