用户登陆业务介绍

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 用户登陆业务介绍

单一服务器模式:

  • 使用session对象实现
  • 登陆成功之后,把用户数据放到session中   session.setAttribute("user",user)
  • 判断是否登陆,从session获取数据,可以获取到登陆  session.getAttribute("user")
  • 缺点:单点性能压力,无法扩展

集群(分布式)部署模式:

  • 单点登陆SSO:一个项目拆分成了许多子模块分别部署在各自的服务器中,单点登陆就是指在一个业务模块登陆了之后,其他模块都会实现登陆功能。例如:百度有百度贴吧和百度文库,登陆了百度贴吧后百度文库也是登陆了。

  image.png

SSO(Single sign on )模式就是单点登陆模式,三种常见的方式

  • session广播机制
  • 本质上是session复制
  • 缺点:资源浪费、数据冗余
  • 使用cookie+redis
  • 建立一个认证服务器,当其他服务需要登陆操作的时候就带着登陆后需要重定向的地址转发到认证服务器上进行登陆,登陆成功后设置一个uuid或者由ip、用户id等等随机生成的token,将token保存到cookie中,并将这个token和对应的用户信息以key-value的形式保存到redis中,并带着token重定向到指定url。
  • 需要登陆的服务器拿到认证中心返回来的token,将这个token也保存到cookie中,并向redis查询出对应的用户信息保存到自己的session或cookie中完成登陆。
  • 因为浏览器每次发送请求都会带着cookie去发送,因此在用户登陆成功后每次请求都带着token,所以可以通过服务器端建立一个filter来判断是哪个用户发送的请求。
  • 当其他未登录的模块需要登陆的时候,也转发请求带着回调地址发送给认证中心,如果认证中心cookie中有其他已登录模块存留的cookie那么认证中心就将这个token返回给该模块,该模块拿到后再根据token找redis拿用户数据,将token和数据存到自己的cookie或者session中,完成登陆。
  • 这样就实现了多个微服务之间的单点登陆的操作。
  • 使用token(令牌)实现:token是指按照一定的规则生成的字符串,字符串可以包含用户信息
  • 在项目某个模块登陆后,按照规则生成字符串,把登陆之后的用于包含到这个字符串中,把字符串返回
  • 将token存到浏览器中,每次请求可以带着token到服务器端
  • 也可以将token放到地址栏内,返回到服务器
  • 服务器收到token进行解码,提取信息,判断是否登陆
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
缓存 前端开发 Go
从4开始,在后端系统中增加用户注册和登录功能
从4开始,在后端系统中增加用户注册和登录功能
42 0
|
3月前
|
Java 数据安全/隐私保护 uml
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
该博客文章通过Java代码示例介绍了备忘录模式(Memento Pattern)的应用,通过创建备忘录对象保存用户信息的状态,允许用户在进行错误操作后能够恢复到之前的状态。
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
|
2月前
|
数据库
Discuz!X3.5管理员前台正常后台登录不进去
Discuz!X3.5管理员前台正常后台登录不进如何解决 而且没反应 没报错 无提示?
43 0
JavaWeb用户信息管理系统-用户只能在一处登录
JavaWeb用户信息管理系统-用户只能在一处登录
47 0
JavaWeb用户信息管理系统-用户退出登录
JavaWeb用户信息管理系统-用户退出登录
124 0
|
安全 算法 中间件
特权账号管理系统PAM的功能
账号全生命周期管理、独特的安全中心、第三方领用
154 0
|
安全 jenkins 持续交付
Jenkins 开启用户注册机制及用户权限设置
Jenkins 开启用户注册机制及用户权限设置
335 0
|
安全 Java 数据库
8-企业权限管理-登陆
8-企业权限管理-登陆
8-企业权限管理-登陆
|
Java 数据库连接 数据库
实现用户登陆功能的实现
在javaEE中,实现用户登陆功能的实现(图文结合)
实现用户登陆功能的实现