json web token 理论与实战

理论

概念

JSON Web Token(JWT)是一个非常轻巧的规范(约定好的这么做)。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。

原理

jwt 登录原理

应用场景

1. 身份认证

这种场景下,用户完成登录,在接下来的每个请求中包含JWT,可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。它的开销非常小,可以轻松的在不同域名(跨域)的系统中传递,是目前最流行的跨域认证解决方案。

2. 信息交换

在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式,由于它的信息是经过签名的,可以确保发送者发送的信息是没有经过伪造的,但是谨记,不应该在载荷里面加入任何敏感的数据。

JWT的组成

一个JWT实际上就是一个字符串,它由三部分组成,头部(Header)、载荷(Payload)与签名(Signature)。
其结构看起来是这样的

Header.Payload.Signature

头部(Header)

Header包含两部分信息,alg指加密类型,可选值为HS256、RSA等等,typ=JWT为固定值,表示token的类型。

{
    "alg": "HS256",
    "typ": "JWT"
}

载荷(Payload)

Payload是指签名信息以及内容,一般包括iss (发行者),exp (过期时间),sub(用户信息),aud (接收者),以及其他信息需要传递的参数信息。谨记,不应该在 载荷 里面加入任何敏感的数据。

签名(Signature)

Signature则为对Header、Payload的签名。
将Header、Payload两个编码后的字符串都用.连接在一起。

实战

  1. json web token 个性邮件实战
  2. json web token 登录实战

参考链接:

JSON Web Token 入门教程
JSON Web Token - 在Web应用间安全地传递信息
系统安全-JWT(JSON Web Tokens)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容