这篇文章给你带来了关于JWT的相关知识,主要介绍了什么是JWT?JWT的原理和用法是什么?感兴趣的朋友,让我们来看看。我希望它能帮助你。
JSON Web Token
(缩写 JWT)它是目前最流行的跨域认证解决方案,本文介绍了它的原理和用法。
一、跨域认证问题
互联网服务离不开用户认证。一般流程如下。
1、用户向服务器发送用户名和密码。
2、服务器验证通过后,在当前对话中,(session)保存相关数据,如用户角色、登录时间等。
3、服务器返回给用户 session_id,写入用户的 Cookie。
4、用户随后的每一个请求都会通过 Cookie,将 session_id 返回服务器。
5、服务器收到 session_id,找到前期保存的数据,从而了解用户的身份。
这种模式的问题是可扩展性(scaling)不好。当然,单机没有问题。如果是服务器集群或跨域服务导向架构,则需要要求。 session 每个服务器都可以读取数据共享 session。
举例来说,A 网站和 B 该网站是同一公司的相关服务。现在,只要用户登录其中一个网站,然后访问另一个网站,它就会自动登录。如何实现它?
一种解决方案是 session 数据持久化,写入数据库或其他持久层。各种服务收到请求后,向持久层请求数据。该方案的优点是结构清晰,缺点是工程量大。此外,如果持久层挂断,单点将失败。
另一种方案是服务器不保存 session 数据,所有数据都保存在客户端,每个请求都发回服务器。JWT 就是这个方案的代表。
二、JWT 的原理
JWT 原理是,服务器认证后,生成一个 JSON 对象,发回用户,就像下面这样。
{