Sa-Token + SpringBoot 实现登录鉴权

1. 技术选型

今天最近在做登录、授权的功能,一开始考虑到的是spring boot + spring security,但spring security太重,而我们是轻量级的项目,所以,spring security不适合我们。

而后考虑spring boot + shiro,但shiro自带的aop会影响spring boot的aop,所以,shiro也不适合我们。

后来浏览github时,发现Sa-Token这个框架,如下是Sa-Token的功能图:

2. Sa-Token概述

2.1 简单介绍

Sa-Token是一个轻量级Java权限认证框架。

主要解决的问题如下:

  • 登录认证

  • 权限认证

  • 单点登录

  • OAuth2.0

  • 分布式Session会话

  • 微服务网关鉴权等一系列权限相关问题。

2.2 登录认证

设计思路

对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验:

  • 如果校验通过,则:正常返回数据。

  • 如果校验未通过,则:抛出异常,告知其需要先进行登录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据用户角色和模块表进行登录鉴权通常可以采取以下步骤: 1. 用户登录:用户提供用户名和密码进行登录后端验证用户的凭据是否正确,并返回一个访问令牌(access token)给前端。 2. 解析访问令牌:前端收到访问令牌后,将其保存在客户端,例如在浏览器的本地存储或cookie中。前端在每次发送请求时,需要将访问令牌附加在请求的头部(例如Authorization头)中。 3. 验证访问令牌:后端在每次接收到请求时,需要验证访问令牌的有效性和合法性。可以使用JWT(JSON Web Token)来实现访问令牌的生成和验证。后端会验证令牌的签名和有效期,并解析其中的用户角色信息。 4. 获取用户角色和模块权限:后端根据解析访问令牌中的用户角色信息,查询用户角色和模块表,获取该用户具有的角色和对应的模块权限。 5. 鉴权检查:后端在处理每个请求时,根据请求的URL路径和HTTP方法,结合用户角色和模块权限信息,进行鉴权检查。判断该用户是否具有访问该URL路径和执行该HTTP方法的权限。如果没有权限,则返回相应的错误响应,否则继续处理请求。 需要注意的是,用户角色和模块表的设计应该合理规划,确保能够灵活地管理和控制用户的权限。可以根据具体的业务需求,设计出适合的表结构来存储用户角色和模块权限信息。可能需要使用关联表、外键约束等数据库技术来建立用户角色和模块之间的关系。 同时,还需要在后端实现相应的鉴权逻辑,确保在每个请求中对用户的权限进行检查和验证。这样可以确保只有具备相应权限的用户能够访问和执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值