基于session认证

目前大多数web应用的用户认证机制都是基于session的。用户认证成功后,在服务端生成用户相关的数据保存在session中(当前会话),而发给客户端的sesssion_id 存放到 cookie 中,这样用客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户的合法校验。当用户登出或过期时把服务端session销毁,客户端的session_id也就无效了。

 

而在分布式的环境下,基于session的认证会出现一个问题。当我们第一次访问网站的时候,负载均衡将本地的请求分配到Web服务器A,那么session创建在Web服务器A,第二次访问的时候如果我们不做处理就不能保证还是会落到Web服务器A了。

​ 这个时候,通常的做法有下面几种:

Session复制:多台应用服务器之间同步session,使session保持一致,对外透明。

Session粘滞:当用户访问集群中某台服务器后,强制指定后续所有请求均落到此机器上。

Session数据集中存储:将Session存入分布式缓存集群中,所有服务器应用实例统一从分布式缓存集群中存取Session。

​ 总体来讲,基于session认证的认证方式,可以更好的在服务端对会话进行控制,且安全性较高。但是,session机制方式基于cookie,在移动应用上无法有效使用,并且无法跨域,保持住会话的做法非常麻烦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值