一.如何查看用户是否登录?
通过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,体验不好.