常见技术场景

常见技术场景

1.单点登录这块怎么实现的

1.1 概述

单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统

以前的时候,一般我们就单系统,所有的功能都在同一个系统上。

image-20230521113500488

单体系统的session共享

  • 登录:将用户信息保存在Session对象中

    • 如果在Session对象中能查到,说明已经登录
    • 如果在Session对象中查不到,说明没登录(或者已经退出了登录)
  • 注销(退出登录):从Session中删除用户的信息

后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。

image-20230521113544219

多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat,所以系统A的Session和系统B的Session是不共享的。

解决系统之间Session不共享问题有一下几种方案:

  • Tomcat集群Session全局复制(最多支持5台tomcat,不推荐使用)
  • JWT(常见)
  • Oauth2
  • CAS
  • 自己实现(redis+token)
1.2 JWT解决单点登录

现在有一个微服务的简单架构,如图:

image-20230521113906521

使用jwt解决单点登录的流程如下:

image-20230521113941467

1.3 回答要点

1,先解释什么是单点登录

单点登录的英文名叫做:Single Sign On(简称SSO

2,介绍自己项目中涉及到的单点登录(即使没涉及过,也可以说实现的思路)

3,介绍单点登录的解决方案,以JWT为例

​ I. 用户访问其他系统,会在网关判断token是否有效

​ II. 如果token无效则会返回401(认证失败)前端跳转到登录页面

​ III. 用户发送登录请求,返回浏览器一个token,浏览器把token保存到cookie

​ IV. 再去访问其他服务的时候,都需要携带token,由网关统一验证后路由到目标服务

2.权限认证是如何实现的

2.1 概述

后台的管理系统,更注重权限控制,最常见的就是RBAC模型来指导实现权限

RBAC(Role-Based Access Control)基于角色的访问控制

  • 3个基础部分组成:用户、角色、权限

  • 具体实现

    • 5张表(用户表、角色表、权限表、用户角色中间表、角色权限中间表)
    • 7张表(用户表、角色表、权限表、菜单表、用户角色中间
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值