关于只通过SessionId登录

关于只通过SessionId登录

  1. 在浏览器关闭之后再开启,此时客户端和服务端连接之后生成的就是一个新的session,此时的session和之前的session的id不同,如何只通过sessionid进行登录,还是说这个通过sessionid进行登录只能在客户端保持浏览器不关闭的情况下才可以?

  2. sessionid和cookie是不是会进行一个关联?这个是如何关联的?我想的是服务器在接到浏览器的请求之后会创建一个sessionid,然后会保存并验证浏览器发送来的用户名和密码,但是如果用户名和密码不匹配怎么办?还会返回给浏览器sessionid吗?还是说在验证通过之后才会把sessionid返回给浏览器,由浏览器保存在cookie中

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,

1、当服务器端的sessionID被清除时,sessionID对应的session对象在服务器中还是存在的。

2、是可以的

3、是不能用于登录的,假如再次发送用户名密码,验证通过,此时的sessionid不会发生变化

      2)保存了sessionID当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,验证通过;反之未通过

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小脸 2020-07-29 11:26:39

同学你好,

1、客户端保持浏览器不关闭的情况下,sessionid不变是可以登录的

2、存储时cookie只保存seesionid。当用户名密码不匹配时会返回给浏览器sessionid

3、同学可以这样理解。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 mahsiaoko #1
    1. 我试了一下,当把sessionid存储到cookie中,然后给cookie设置失效时间,那么当关闭再重新打开浏览器,依然可以读取到sessionid对应的服务器端的信息。所以这个sessionid对应的存储区域会在服务器端sessionid被清除之后依旧存在对吗?2.我发现当不手动保存sessionid到cookie时,再次打开浏览器时,cookie中的sessionid会发生变化,也就是说如果想长期保存sessionid需要把sessionid手动保存到cookie中对吗? 3.用户名和密码不匹配时返回的sessionid应该不能用于登录吧?假如再次发送用户名密码,验证通过,此时的sessionid会发生变化吗?如何识别验证通过还是没有通过的sessionid呢?
    2020-07-29 11:50:37
mahsiaoko 提问者 2020-07-28 23:24:57

我在补充一点,我在我这边的浏览器中看到

Cookie:user=admin; JSESSIONID=B10C1BD39478B071BB338B0A3CF59FE3;

此处JSESSIONID=B10C1BD39478B071BB338B0A3CF59FE3;加入到Cookie中的方式是通过服务端自动调用类似如下的方法实现的吗?

Cookie cookie=new Cookie("user","admin");
response.addCookie(cookie);


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师