一个超级超级简单的 Java 权限认证框架,一行代码搞定登录授权!

2021-02-26 18:38:32 +08:00
 konglizhi3362

受够了 shiro 、Spring Security 等权限认证框架的啰嗦,每次使用都要实现各种接口,然后封装一堆XxxUtil来简化 API 调用,于是借着假期,自己实现了一个权限认证框架——sa-token

如题,在 sa-token 完成登录授权,只需一行代码

// 在用户账号密码验证成功后,直接调用以下 API 进行登录授权
StpUtil.setLoginId(10001); 

不需要自定义 Realm !不需要全局过滤器!不需要写各种配置文件!

就这一行代码!就可以完成会话的登录授权!

如果你受够了 Shiro 、Security 等框架的三拜九叩,可以来尝试一下 sa-token 呦,>_<

除了以上的登录授权,sa-token 还可以一行代码完成以下功能:

StpUtil.setLoginId(10001);                // 标记当前会话登录的账号 id
StpUtil.getLoginId();                     // 获取当前会话登录的账号 id
StpUtil.isLogin();                        // 获取当前会话是否已经登录, 返回 true 或 false
StpUtil.logout();                         // 当前会话注销登录
StpUtil.logoutByLoginId(10001);           // 让账号为 10001 的会话注销登录(踢人下线)
StpUtil.hasRole("super-admin");           // 查询当前账号是否含有指定角色标识, 返回 true 或 false
StpUtil.hasPermission("user:add");        // 查询当前账号是否含有指定权限, 返回 true 或 false
StpUtil.getSession();                     // 获取当前账号 id 的 Session
StpUtil.getSessionByLoginId(10001);       // 获取账号 id 为 10001 的 Session
StpUtil.getTokenValueByLoginId(10001);    // 获取账号 id 为 10001 的 token 令牌值
StpUtil.setLoginId(10001, "PC");          // 指定设备标识登录
StpUtil.logoutByLoginId(10001, "PC");     // 指定设备标识进行强制注销 (不同端不受影响)
StpUtil.switchTo(10044);                  // 将当前会话身份临时切换为其它账号

希望各位给点指导意见 嘿嘿 >_<



2715 次点击
所在节点    分享创造
2 条回复
jaylee4869
2021-02-26 19:09:56 +08:00
测试呢? CI 呢?
siweipancc
2021-02-27 13:08:32 +08:00
过度设计的产物……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/756592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX