单点登录原理和简单实现

来源:互联网 发布:淘宝店招页头尺寸 编辑:程序博客网 时间:2024/05/17 23:18

一 博客地址

点击打开链接


既然http协议无状态,那就让服务器和浏览器共同维护一个状态吧。这就是会话机制。

二 会话机制(session机制)

浏览器第一次请求服务器,服务器创建一个会话(session对象),并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续的第二次,第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了。

  • 服务器在内存中保存session对象,浏览器怎么保存会话id呢?
  • 让浏览器自己来维护这个会话id吧。每次发送http请求时浏览器自动发送会话id,cookie机制正好用来做这件事。
  • cookie是浏览器用来存储少量数据的一种机制,数据以“key/value”形式存储,浏览器发送http请求时自动附带cookie信息。
  • 服务器拿到会话id,找到session对象,服务器内部的session对象记录下用户的操作和已登录用户的私密数据的url

三 登录状态

  • 假设浏览器第一次请求服务器需要输入用户名和密码验明身份
  • 服务器拿到用户名和密码去数据库比对,正确的话说明当前持有这个会话的用户是合法用户,应该将这个会话标记为“已授权”或者“已登录”等等之类的状态
  • 既然是会话的状态,自然要保存到会话对象中,tomcat在会话对象中设置登录状态如下:
  • HttpSession session = request.getSession();session.setAttribute("isLogin",true);

  • 用户再次访问时,tomcat在会话对象中查看登录状态
  • HttpSession session = request.getSession();session.getAttribute("isLogin");

登录状态总结

  •  向服务器发送http请求,服务器在内存里创建session对象,并以会话id标识
  • 如果登录验证通过,服务器里的session对象的“isLogin”属性标记为true

四 理解android登录逻辑,了解以上知识就过关了

  • session是服务器里的对象,用来唯一的标识用户,关联用户的所用信息:包括存放在服务器里资源;用户的操作。
  • cookie存放在客户端,用来保存服务器中session对象的会话id,以及其他的一些属性信息:有效期等
  • session和cookie要结合使用

五 我自己的一些想法

  • http保持会话状态也可以只采用cookie机制
  • 客户端第一次访问服务器,服务器不创建session对象,而是创建一个cookie对象,在服务器里对这个cookie对设置各种属性,然后服务器返回cookie对象到客户端,这时服务器内部销毁cookie对象即可
  • 客户端把cookie对象存储,每次请求的时候带上cookie信息,服务器解析cookie,维持“长连接”
  • 优点 : 节约了服务器的运行内存
  • 缺点 : 安全性差




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 乐贷款逾期一天怎么办 被贷款公司骚扰怎么办 趣店账户异常怎么办 指还王要还款下载不了怎么办 随心花账户异常怎么办 账号已被锁定怎么办 哈罗单车被警告怎么办 禁止安装拼多多怎么办 该用户行为异常怎么办 设备被禁止登录怎么办 你的设备被禁封怎么办 监控显示未配置怎么办 监控显示不在线怎么办 兔聊认证不通过怎么办 高考成绩被屏蔽怎么办 百合号码换了怎么办 微粒贷还款限额怎么办 秒白条扣款失败怎么办 信用卡逾期没还怎么办 催收发侮辱短信怎么办? 快贷还清后被拒怎么办 任信用还不起怎么办 信用飞额度抢光怎么办 装修工钱要不回怎么办 装修客户不给钱怎么办 公司赖账不给怎么办 欠钱不还还把我设置黑名单怎么办 别人欠钱留我电话怎么办 微贷审核不通过怎么办 客户赖账不还怎么办 货款拖欠想赖账怎么办 有欠条还赖账怎么办 个人欠货款逃跑怎么办 微信借钱被拉黑怎么办 朋友借钱忘记还怎么办 座机接不到电话怎么办 工地拖欠材料款怎么办 工地不付货款怎么办 生气引起的失眠怎么办 晚上气的睡不着怎么办 半夜气的睡不着怎么办