JWT 学习笔记
来源:互联网 发布:ichart.js下载 编辑:程序博客网 时间:2024/06/02 04:33
为什么要使用jwt,让网络数据更加安全,以防其他一些人无意恶搞
降低了session验证的性能消耗。
JWT是 Auth0 提出的通过对JSON进行加密签名来实现授权验证的方案,编码之后的JWT看起来是这样的一串字符:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
由.分为三段,通过解码可以得到:
// 1. Headers// 包括类别(typ)、加密算法(alg);{ "alg": "HS256", "typ": "JWT"}// 2. Claims// 包括需要传递的用户信息;{ "sub": "1234567890", "name": "John Doe", "admin": true}// 3. Signature// 根据alg算法与私有秘钥进行加密得到的签名字串;// 这一段是最重要的敏感信息,只能在服务端解密;HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), SECREATE_KEY)
在使用过程中,服务端通过用户登录验证之后,将Header+Claim信息加密后得到第三段签名,然后将签名返回给客户端,在后续请求中,服务端只需要对用户请求中包含的JWT进行解码,即可验证是否可以授权用户获取相应信息.
使用JWT可以省去服务端读取Session的步骤,这样更符合RESTful的规范。但是对于客户端(或App端)来说,为 了保存用户授权信息,仍然需要通过Cookie或类似的机制进行本地保存。因此JWT是用来取代服务端的Session而非客户端Cookie的方案,当 然对于客户端本地存储,HTML5提供了Cookie之外更多的解决方案(localStorage/sessionStorage),究竟采用哪种存储 方式,其实从Js操作上来看没有本质上的差异,不同的选择更多是出于安全性的考虑。
0 0
- JWT 学习笔记
- JWT学习
- JWT学习(一):JWT简介
- jwt
- jwt
- JWT
- JWT
- JWT
- JWT
- JWT
- jwt
- Json Web Token——JWT 笔记
- laravel学习之路2: jwt集成
- JWT的学习:JSON Web Token
- JWT学习(二):JWT在分布式SSO中的应用实例
- 【个人笔记重点,不作为参考】主题:angular2-jwt
- JWT成员名单
- JWT Token
- MySQL技术内幕InnoDB存储引擎学习笔记(第九章)
- 2017网易校招内推笔试题
- 后缀数组水题(待完善)
- Android View框架总结(一)
- OJ题:输入一个多位的数字,求各数位相加。
- JWT 学习笔记
- 2,从零开始搭建SSHM开发框架(集成Spring+JPA)
- java基础——bufferedinputstream FileInputStream inputstream的比较
- java mysql 高性能批量处理 设置rewriteBatchedStatements
- 递归介绍
- Mac中的快捷键
- VDMA之MM2S和S2MM接口调试验证
- 我的java.lang.NoClassDefFoundError问题及其解决
- Permission denied (publickey,keyboard-interactive). fatal: The remote end hung up unexpectedly 解决方法