JWT 概念以及Cookie+Session解决的问题
来源:互联网 发布:linux mysql开机自启 编辑:程序博客网 时间:2024/06/05 12:18
什么是JTW?
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
JWT构成?
第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature)
// 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)
http协议是无状态的,通过cookie和session,相当于全局变量,,cookie保存在客户端,session保存在服务器。原理就是在用户登录通过验证后,服务端将数据加密后保存到客户端浏览器的Cookie中,同时服务器保留相对应的Session(文件或DB)。用户之后发起的请求都会携带Cookie信息,服务端需要根据Cookie寻回对应的Session,从而完成验证,确认这是之前登陆过的用户
JWT和Cookie/Session的比较
JWT可以省去服务端读取Session的步骤,这样更符合RESTful的规范。但是对于客户端(或App端)来说,为了保存用户
授权信息,仍然需要通过Cookie或类似的机制进行本地保存。因此JWT是用来取代服务端的Session而非客户端Cookie的方案,当然
对于客户端本地存储,HTML5提供了Cookie之外更多的解决方案(localStorage/sessionStorage),究竟采用哪种存储方式,其实从
Js操作上来看没有本质上的差异,不同的选择更多是出于安全性的考虑。
链接:http://www.jianshu.com/p/576dbf44b2ae
链接:http://blog.rainy.im/2015/06/10/react-jwt-pretty-good-practice/
阅读全文
0 0
- JWT 概念以及Cookie+Session解决的问题
- session和cookie的概念和区别
- cookie和session的相关概念
- session、cookie、sessionStorage 、localStorage的概念
- session共享问题以及解决
- session与cookie的区别以及配置
- session和cookie的用法以及区别
- Cookie Session 以及它们的区别
- cookie与session的比较,以及application
- 解决访问不同的站点iframe应用session丢失(cookie丢失的问题)的问题
- cookie用法以及cookie与session的区别
- IE7与IE8浏览器下session cookie的共享问题以及区别
- IE7与IE8浏览器下session cookie的共享问题以及区别
- IE7与IE8浏览器下session cookie的共享问题以及区别
- IE7与IE8浏览器下session cookie的共享问题以及区别
- session与cookie概念详解
- session、cookie概念作用辨析
- session和cookie简单概念
- [LeetCode]44. Wildcard Matching 深入浅出讲解和代码示例
- Die.Welt.Kompakt.
- pip 安装 beautifulsoup4
- #python学习笔记#使用python爬取网站数据并保存到数据库
- 最小生成树:POJ1251-Jungle Roads(最小生成树的模板)
- JWT 概念以及Cookie+Session解决的问题
- IntelliJ IDEA启动Tomcat后,却无法访问Tomcat主页
- 黑框框里的三子棋
- python——快速读取excel文件并插入数据库
- Java集合--CopyOnWriteArrayList
- windows系统中安装rabbitmq
- 通过批处理文件新增删除Windows任务
- 如何用C语言编写死循环
- 分类算法:bayes