单点登录(single sign on),简称sso。它的定义是多个应用系统间,只需要登录一次就可以访问所有相互信任的应用系统。
常见的是通过jwt来实现单点登录。
JWT (JSON WEB TOKEN)是一个非常轻巧的规范,这个规范允许我们使用jwt在客户端和服务器之间传递安全可靠的信息。
JWT由3个部分组成,分别是头部、载荷、签名。
JWT生成的字符串包括三部分:
1.JWT头信息
2.有效载荷(包含头部信息)
3.签名哈希
JWT的原则
JWT的原则是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,
{ "phone": "1234567890", "name": "aaa", "admin": true }
之后,当用户与服务器通信时,客户在请求中发回JSON对象。服务器仅依赖于这个JSON对象来标识用户。为了防止用户篡改数据,服务器将在生成对象时添加签名。
服务器不保存任何会话数据,即服务器变为无状态,使其更容易扩展。
JWT的用法
客户端接收服务器返回的JWT,将其存储在Cookie或localStorage中。
此后,客户端将在与服务器交互中都会带JWT。如果将它存储在Cookie中,就可以自动发送,但是不会跨域,因此一般是将它放入HTTP请求的Header Authorization字段中。当跨域时,也可以将JWT被放置于POST请求的数据主体中。