什么是JWT
JSON Web Token(以下简称 JWT)是一套开放的标准,它定义了一套简洁且 URL 安全的方案,以安全地在客户端和服务器之间传输 JSON 格式的信息。
它有什么优点?
- 体积小(一串字符串)。因而传输速度快
- 传输方式多样。可以通过 HTTP 头部(推荐)/URL/POST 参数等方式传输
- 严谨的结构化。它自身(在 payload 中)就包含了所有与用户相关的验证消息,如用户可访问路由、访问有效期等信息,服务器无需再去连接数据库验证信息的有效性,并且 payload 支持应用定制
- 支持跨域验证,多应用于单点登录
单点登录(Single Sign On):在多个应用系统中,用户只需登陆一次,就可以访问所有相互信任的应用。
为什么选择 JWT?
在前后端分离的应用中,后端主要作为 Model 层,为前端提供数据访问 API。为了保证数据安全可靠地在用户与服务端之间传输,实现服务端的认证就显得极为必要。
常见的服务端认证方法有基于 Cookie 的认证,如 session;以及 Token (令牌)认证,如 JWT。前者依赖于 cookie 而实现,在每次请求时都需要带上 cookie ,取出相应字段并与服务器端的进行对比,以实现身份的认证。而后者仅仅需要在 HTTP 的头部附上 token,由服务器 check signature 即可实现,无须担心 cooki