jwt、session、oauth 异同
1,jwt 和session机制
首先jwt 和session机制 都是用户认证的,oauth 不是
session 的流程:
1、用户向服务器发送用户名和密码。
2、服务器验证通过后,在当前对话(session)里面保存相关数据,
比如用户角色、登录时间等等。
3、服务器向用户返回一个 session_id,写入用户的 Cookie。
4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。
5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。
jwt 的流程:
即 :(json web token)
1、用户向服务器发送用户名和密码。
2、服务器验证通过后,生成jwt,可以有选择的在其中 保存用户信息及数据。也可以加密。
3、服务器向用户返回jwt。
4、用户随后的每一次请求,都会在 cookie 或者
header或参数里,将 jwt 传回服务器鉴权。
5、服务器收到jwt,找到前期保存的数据,由此得知用户的身份。
jwt 长相:
分为 头部(header),载荷(payload),签证(signature). 用 “.” 分隔。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1
NDM0ODg3NjgsImp0aSI6ImFjYzhmZjIzLWM1MjgtNDk3OS04N
TYwLWY0NGFmYWNhNDY4MiIsImlzcyI6ImJpenN2YyIsIm5iZ
iI6NTQzNDgxNTY4LCJzdWIiOiJ0b2tlbi14ajZqOTo3emg1Y
md2OGI1cWZrN2JoNnJxZ3o3djV0OGJ2amhiNHNoazQ5aGh6O
GtjcWN6NmpnNWI3ejIifQ.dRKURNOUFOlgO7zBxMajF7-8Wn
0zYs8x2t0UU6SYtP4
即: session 存数据于server端,而jwt 存数据于client
优缺 :
jwt
没有跨域问题、集群下登录信息同步的问题。
一旦签发,到期前无法简单废止,最好用https。
server无状态,性能高。
session
扩展性不好,存在跨域 和 集群session同步的问题。
面对csrf 攻击,不如jwt。
2,oauth 用于第三方认证
目的在于让客户端安全可控地获取"用户"的授权
比如说,登录微博(客户端)的时候,懒得新建账号了就用qq账号登录,选择qq登录。这时 就是oauth登场时刻了。 的场景。现在一般是oauth2,版本2.
oauth场景,客户端不必保存登录用户(qq)的登录密码。
更精细的控制权限,即权限的到期时间,提升安全性。
有四种模式:
授权码模式(authorization code)
简化模式(implicit)
密码模式(resource owner password credentials)
客户端模式(client credentials)
jwt、session、oauth 异同的更多相关文章
- PHP中Cookie与Session的异同以及使用
Cookie与Session的异同: 一.cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Mana ...
- cookie 和 session 的异同
cookie和session机制是web中常用的跟踪技术,用来跟踪用户的整个会话.cookie通过在客户端记录信息确定用户的身份,session通过在服务器端记录信息确定用户身份. (1)cookie ...
- ActionContext 与 ServletActionContext获取Session的异同
1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...
- Authentication 方案优化探索(JWT, Session, Refresh Token, etc.)
转载自:http://www.jianshu.com/p/5ac8a0e1e5a8
- 认证 协议 JWT OAuth Session Cookie
本文翻译自Auth-Boss. 如果有翻译的不恰当或不对的地方, 欢迎指出. 成为一个认证老司机, 了解网络上不同的身份认证方法. 本文档的目的是记录和编目Web上的身份验证方法.认证指的是创建一个系 ...
- JWT,oAuth和SSO的讨论
JWT,oAuth和SSO的讨论 背景 Single Sign On有很多成熟的方案.基于Session的服务常使用缓存Session信息在一个缓存服务上(例如redis)以实现SSO,每个微服务使用 ...
- 快速了解会话管理三剑客cookie、session和JWT
更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 存储位置 三者都是应用在web中对http无状态协议的补充,达到状态保持的目的 cookie:cookie中的信息是 ...
- JWT与Session比较和作用
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该 ...
- SESSION和JWT
1.传统登录的方式是使用 session + token,比较适用于Web应用的会话管理.token 是指在客户端使用 token 作为用户状态凭证,浏览器一般存储在 localStorage 或者 ...
随机推荐
- Linux设备树(六 memory&chosen节点)
六 memory&chosen节点 根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点.memory节点用来描述硬件内存布局的.如果有多块内存,既可以通过多个memo ...
- Linux性能优化实战:到底应该怎样理解平均负载(02)
一.平均负载与CPU使用率并没有直接关系 1.平均负载 单位时间内,系统处于可运行状态和不可终端状态的平均进程数也就是平均活跃进程数,它和cpu使用率并没有直接关系, 可运行状态: 正在使用的cpu或 ...
- Mysql SQL注入漏洞
学习网址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html https://www.cnblogs.com/sdya/p/4568 ...
- [JDK8]性能优化之使用LongAdder替换AtomicLong
如果让你实现一个计数器,有点经验的同学可以很快的想到使用AtomicInteger或者AtomicLong进行简单的封装. 因为计数器操作涉及到内存的可见性和线程之间的竞争,而Atomic***的实现 ...
- win7 远程连接服务器出现身份验证错误,又找不到加密Oracle修正
今天想用远程桌面连接登录服务器,结果,弹出一个错误的提示框:发生身份验证错误,要求的函数不受支持. 然后在网上找了相关的教程,基本上所有的方法都是如下所示: 策略路径:"计算机配置" ...
- HTML(九)HTML 条件注释规范
HTML 条件注释(hack常用) IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素.很显然这种方法的最大好处就在于属于微软官方给出的 ...
- ntp 服务:Server dropped: Strata too high
1.通过ntpdate -d 服务端IP,显示Server dropped: Strata too high vi /etc/ntp.conf 在ntpd服务端的配置中添加 server 127.12 ...
- react-router v4 按需加载的配置方法
在react项目开发中,当访问默认页面时会一次性请求所有的js资源,这会大大影响页面的加载速度和用户体验.所以添加按需加载功能是必要的,以下是配置按需加载的方法: 安装bundle-loader np ...
- linux tomcat单机部署多应用
1.修改/etc/profile 增加tomcat环境变量
- webservice访问的几种方式
今天在对接的客户用到了webservice,最终采用wsimport生成本地代理方式以SDK的形式对接,但是想的完整的总结一下ws的几种调用方式. 发布服务的IP地址是:192.168.125.116 ...