✅技术社区项目—Session/Cookie身份验证识别

本文详细阐述了SpringBoot中的session实现机制,包括如何利用JESSIONID识别用户,内存中的存储策略,以及在无cookie支持时的URL重写方法。同时介绍了技术派在前后台登录中的不同应用,重点讲解了管理员登录流程,强调了用户身份识别的核心思路。
摘要由CSDN通过智能技术生成

session实现原理

SpringBoot提供了一套非常简单的session机制,那么它又是怎么工作的呢? 特别是它是怎么识别用户身份的呢? session又是存在什么地方的呢?

核心工作原理

借助cookie中的 JESSIONID 来作为用户身份标识,这个数据相同的,认为是同一个用户;然后会将session在内存中存一份,有过期时间的限制,通常每次访问一次,过期时间重新刷新当浏览器不支持cookie时,借助url重写,将 sessionld 写到url的地址中,参数名=jsessionid

技术派实现

在技术派的实现中,其实和上面的思路没有什么差别,只不过是将读写cookie,使用session的具体逻辑,展示出来了而已

当前的技术派,针对前台和管理员的后台登录,设置了两套不同的玩法;前者是基于微信公众号,后者则是传统的用户名+密码;虽然登录方式不同,但底层的原理一致;

接下来再进行讲解session/cookie的具体实例时,以管理员的后台为例进行说明,整个流程如下图所示

  • 浏览器登录发送账号密码,服务端查用户库,校验用户
  • 服务端把用户登录状态存为 Session,生成一个 sessionId(uuid)
  • 通过登录接口返回,把 sessionId set 到 cookie 上
  • 此后浏览器再请求业务接口,sessionId 随 cookie 带上
  • 服务端查 sessionId 校验 session
  • 成功后正常做业务处理,返回结果

小结

当前技术派中的用户身份识别这套方案,与传统的cookie/session其实没有什么本质的区别,核心思路就是

  • 用户登录,生成一个唯一标识sessionid
  • 服务端保存这个标识与用户的映射关系

服务端将这个标识,写cookie返回给客户端客户端后续的请求,携带cookie

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值