用户登陆业务介绍

本文涉及的产品
云数据库 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开始,在后端系统中增加用户注册和登录功能
23 0
|
8月前
JavaWeb用户信息管理系统-用户只能在一处登录
JavaWeb用户信息管理系统-用户只能在一处登录
29 0
|
8月前
JavaWeb用户信息管理系统-用户退出登录
JavaWeb用户信息管理系统-用户退出登录
75 0
|
6月前
JeecgBoot获取当前登入用户
JeecgBoot获取当前登入用户
|
安全 Java 数据库
8-企业权限管理-登陆
8-企业权限管理-登陆
8-企业权限管理-登陆
|
数据安全/隐私保护
9-企业权限管理-用户操作
9-企业权限管理-用户操作
9-企业权限管理-用户操作
|
存储 NoSQL Redis
登录业务介绍(单点登录) | 学习笔记
快速学习登录业务介绍(单点登录)
273 0
登录业务介绍(单点登录) | 学习笔记
|
Java 数据库连接 数据库
实现用户登陆功能的实现
在javaEE中,实现用户登陆功能的实现(图文结合)
实现用户登陆功能的实现
|
Java 数据安全/隐私保护
纳税服务系统五(登陆与系统拦截)【配置系统、子系统首页、登陆与拦截】(上)
到目前位置,我们的用户模块和角色模块基本已经做好了,我们的纳税服务系统是放在一个大系统里边的。我们应该把我们已经写好的模块加载进去。 本文主要的知识点: 配置系统首页 登陆模块 权限拦截模块
259 0
纳税服务系统五(登陆与系统拦截)【配置系统、子系统首页、登陆与拦截】(上)