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 登录认证
设计思路
对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验:
-
如果校验通过,则:正常返回数据。
-
如果校验未通过,则:抛出异常,告知其需要先进行登录。