栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第三章、基于Ruoyi-Vue开发脚手架之多账户登录体系实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第三章、基于Ruoyi-Vue开发脚手架之多账户登录体系实现

多账户登录体系实现

文章目录
  • 多账户登录体系实现
    • 解决方案
    • 集成方式
      • 引入依赖
      • 新建新的认证类
    • 使用方式
      • 如何实现客户端账户登录?
      • 如何进行鉴权判断?
      • 如何获取当前登录的用户ID?
    • 完整代码

  • 有的时候,我们会在一个项目中设计两套账号体系。如电商系统中的 系统用户表 sys_user 和 用户会员表 ums_member。如下图所示。两套账户之间需要隔离操作。这种问题的模型就叫做多账户认证体系。

解决方案
  • Sa-Token:Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。

  • RuoYi-Vue系统原有后台管理系统已经使用了SpringSecurity框架做了登录认证和权限认证。

  • 为了不影响原有后台逻辑,在客户端方面我们新集成了Sa-Token,两套认证体系相互独立。在客户端方面我们一般只需要对用户进行认证处理,不需要进行权限认证。

集成方式 引入依赖


    cn.dev33
    sa-token-spring-boot-starter




    cn.dev33
    sa-token-dao-redis-jackson

新建新的认证类
  • 建立新的认证类的目的是为了防止后面可能还会有店员端的账户体系登录,所以我们直接建立一个新的认证类,后面如果还有其他账户体系的话就可以直接仿照用户端来做了。
package com.ruoyi.common.utils.satoken;

import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.fun.SaFunction;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.stereotype.Component;

import java.util.List;


@Component
public class StpClientUtil {
    // 代码太长省略了,大家可以跳到最下面去,看系统完整源码。
}


使用方式 如何实现客户端账户登录?
  • 可以通过 自定义工具类 StpClientUtil 中的 login方法实现用户账户的登录。
如何进行鉴权判断?
  • 方式一、在需要认证的类上加入 @SaClientCheckLogin 注解
  • 方式二、在需要认证的方式上加入 @SaClientCheckLogin 注解
@Api(tags = "客户端-用户模块API")
@SaClientCheckLogin
@RestController
@RequestMapping("/api/client/ums")
public class UmsApi {

    @Autowired
    private IClientUmsService clientUmsService;

    @ApiOperation("用户信息")
    @GetMapping("/user/info")
    public R userInfo () {
        return clientUmsService.userInfo();
    }

    @ApiOperation("用户信息保存")
    @PostMapping("/user/save")
    public R userSave (@RequestBody UmsUserDto umsUserDto) {
        return clientUmsService.userSave(umsUserDto);
    }

}

如何获取当前登录的用户ID?
  • 可以通过 自定义工具类 StpClientUtil 中的 getLoginId 获取当前登录的用户ID。
完整代码
  • 代码地址

gitee.com/zouhuu_admin/RuoYi-Vue-Staging

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号