为什么要使用oath协议?
一.如何查看用户是否登录?
通过cookie和session来查看用户是否登录.
如果cookie对应的session中保存了用户登录信息,则判定用户已登录
Jsessionid,也就是tomcat自动生成的cookie,用来匹配session,默认的domain,path以及expires都是N/A
这个N/A的意思是默认,domain和path都是/,expires关闭浏览器过期.
domain表示二级域名等是否共享cookie,如果domain为cnblogs.com表示只有cnblogs.com享有此cookie,
而如果设置为.cnblogs.com(有个点),则i.cnbolgs.com,q.cnblogs.com以及全部二级域名都享受此cookie
如果设置为/,则cnblogs.com:8080也享有此cookie,应该没有没有正则的写法.
path表示目录,比如/sso,domain为cnblogs.com,只有cnblogs.com/sso目录下的页面享有此cookie
二. 普通的缺点.
1.微信小程序以及类似的不支持cookie
2.app的cookie关闭后就清空了(没试过)
3.安全性,https另说,没接触过
三.oath协议的四种模式
1.授权码
2.简化
3.密码
4.客户端
四.oath协议如何规避二中的缺点
只讨论授权码和简化模式
授权码模式有1,2,3,4,5五步,最后一步发送令牌是认证服务器通过request向第三方应用的服务器发送令牌,相比简化模式更安全.
简化没有第3步,第4步,只有1,2,5三步,因为简化模式假定没有网页没有服务器控制权,用户同意授权后认证服务器发送携带令牌的response返回第三方应用的页面.
oath协议中只需要令牌,令牌是普通字符串,不涉及cookie
而且令牌可以不需要https也能操作加密.
只需要client每次发送的时候在携带令牌即可.
而且令牌可以设置成定时更新,在用户没有察觉的情况下更新令牌,更安全.
但cookie的对应的session并没有办法更改jsessionid,如果为了安全30分钟让用户重新登录一次更换jsessionid,体验不好.
为什么要使用oath协议?的更多相关文章
- HTTP协议系列(1)
一.为什么学习Http协议 首先明白我们为什么学习HTTP协议,也就是说明白HTTP协议的作用.HTTP协议是用于客户端与服务器之间的通讯.明白了HTTP协议的作用也就知道了为什么要学习H ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- 协议森林17 我和你的悄悄话 (SSL/TLS协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的 ...
- 协议森林16 小美的桌号(DHCP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...
- 简约之美Jodd-http--深入源码理解http协议
Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大! jodd-http是一个轻巧的HTTP客户端.现在我们以一个简单的示例从源码层看看是如何实现的? Http ...
- 【JavaScript】javascript中伪协议(javascript:)使用探讨
javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...
- SNMP简单网络管理协议
声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...
- 海鑫智圣:物联网漫谈之MQTT协议
什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...
- linux-图形化远程管理协议
远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...
随机推荐
- ETCD网络层实现(待完成)
ETCD系列之三:网络层实现 ETCD系列之二:部署集群 ETCD系列之一:简介 ETCD相关介绍--整体概念及原理方面
- jquery及jquery常用选择器使用
本文为博主原创,未经允许不得转载: 1.jquery强大之处: 容易上手,强大的选择器,解决浏览器的兼容 完善的时间机制,出色的ajax封装,丰富的ui 2.jquery是一个javas ...
- Git 提交的正确姿势:Commit message 编写指南
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit message( ...
- 【译】第44节---EF6-存储过程映射
原文:http://www.entityframeworktutorial.net/entityframework6/code-first-insert-update-delete-stored-pr ...
- HDU 4303 Hourai Jeweled(树形DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4303 题意:给出一棵树,树上的每一个节点都有一个权值,每条边有一个颜色,如果一条路径上相邻边的颜色都是不同的,那 ...
- Codeforces 729E Subordinates
题目链接:http://codeforces.com/problemset/problem/729/E 既然每一个人都有一个顶头上司,考虑一个问题: 如果这些人中具有上司数目最多的人有$x$个上司,那 ...
- 本地Windows上安装 MySQL数据库
1.首先下载mysql安装文件,下载地址:https://dev.mysql.com/downloads/mysql/ 2.将下载下来的压缩包解压到本地一个文件夹中 3.在文件根目录下新增my.ini ...
- [原][spark]帧序列的纹理UV索引,修改spark源码,改变纹理索引方式,支持常规帧序列
spark的纹理索引方式是左下为最小值0 右上为最大值k ,遍历顺序为横向即: 3 4 5 0 1 2 而常规的纹理帧序列是这样的: 0 1 2 3 4 5 所以,为了让spark的纹理遍历顺序能按照 ...
- EditPlus查找替换
换行符\n,记得选择正则表达式 1]正则表达式应用——替换指定内容到行尾解决:① 在替换对话框,查找内容里输入“abc.*”② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮其中,符号的含义如 ...
- 力扣(LeetCode) 905. 按奇偶排序数组
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素. 你可以返回满足此条件的任何数组作为答案. 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] ...