diff --git a/sa-token-doc/doc/fun/jur-cache.md b/sa-token-doc/doc/fun/jur-cache.md index ada57ee1..b1c1d765 100644 --- a/sa-token-doc/doc/fun/jur-cache.md +++ b/sa-token-doc/doc/fun/jur-cache.md @@ -3,27 +3,43 @@ --- -参考示例: +参考如下: ``` java /** - * 返回一个账号所拥有的权限码集合 + * 自定义权限验证接口扩展 */ -@Override -public List getPermissionList(Object loginId, String loginType) { +@Component +public class StpInterfaceImpl implements StpInterface { + + // 返回一个账号所拥有的权限码集合 + @Override + public List getPermissionList(Object loginId, String loginType) { + + // 1. 声明权限码集合 + List permissionList = new ArrayList<>(); + + // 2. 遍历角色列表,查询拥有的权限码 + for (String roleId : getRoleList(loginId, loginType)) { + SaSession roleSession = SaSessionCustomUtil.getSessionById("role-" + roleId); + List list = roleSession.get("Permission_List", () -> { + return ...; // 从数据库查询这个角色所拥有的权限列表 + }); + permissionList.addAll(list); + } + + // 3. 返回权限码集合 + return permissionList; + } - // 1. 获取这个账号所属角色id - long roleId = StpUtil.getSessionByLoginId(loginId).get("Role_Id", () -> { - return ...; // 从数据库查询这个账号所属的角色id - }); + // 返回一个账号所拥有的角色标识集合 + @Override + public List getRoleList(Object loginId, String loginType) { + SaSession session = StpUtil.getSessionByLoginId(loginId); + return session.get("Role_List", () -> { + return ...; // 从数据库查询这个账号id拥有的角色列表 + }); + } - // 2. 获取这个角色id拥有的权限列表 - SaSession roleSession = SaSessionCustomUtil.getSessionById("role-" + roleId); - List list = roleSession.get("Permission_List", () -> { - return ...; // 从数据库查询这个角色id拥有的权限列表 - }); - - // 3. 返回 - return list; } ``` diff --git a/sa-token-doc/doc/use/login-auth.md b/sa-token-doc/doc/use/login-auth.md index 962727fe..c39a2164 100644 --- a/sa-token-doc/doc/use/login-auth.md +++ b/sa-token-doc/doc/use/login-auth.md @@ -96,6 +96,12 @@ public class LoginController { return SaResult.ok("是否登录:" + StpUtil.isLogin()); } + // 查询 Token 信息 ---- http://localhost:8081/acc/tokenInfo + @RequestMapping("tokenInfo") + public SaResult tokenInfo() { + return SaResult.data(StpUtil.getTokenInfo()); + } + // 测试注销 ---- http://localhost:8081/acc/logout @RequestMapping("logout") public SaResult logout() {