网站服务器租赁需要什么手续,网络公司网站源码,建设网站需求,企业组织架构图写在最前 
如果这个项目让你有所收获#xff0c;记得 Star 关注哦#xff0c;这对我是非常不错的鼓励与支持。 
源码地址#xff08;后端#xff09;#xff1a;https://gitee.com/csps/mingyue 
源码地址#xff08;前端#xff09;#xff1a;https://gitee.com/csps…写在最前 
如果这个项目让你有所收获记得 Star 关注哦这对我是非常不错的鼓励与支持。 
源码地址后端https://gitee.com/csps/mingyue 
源码地址前端https://gitee.com/csps/mingyue-ui 
文档地址https://gitee.com/csps/mingyue/wikis 
前情回顾 
之前我们设计了权限模型并提交了数据库脚本然后通过 mingyue-common-gen 模块 MingYueCommonGenDemo 生成了基础代码接下来我们需要提供两个关键接口 
获取用户权限信息获取用户路由信息 
TIPS 
为了严格按照 RESTful 接口风格设计变更现有接口命名 getSysUserInfoByUsername  userInfo、getSysUsers  list后续接口也将严格按照 RESTful 接口风格设计。 
登录缓存用户信息 
Session 会话 Session 是会话中专业的数据缓存组件通过 Session 我们可以很方便的缓存一些高频读写数据提高程序性能例如 // 在登录时缓存 user 对象 
StpUtil.getSession().set(user, user);// 然后我们就可以在任意处使用这个 user 对象
SysUser user  (SysUser) StpUtil.getSession().get(user);在 Sa-Token 中Session 分为三种分别是 Account-Session: 指的是框架为每个账号 id 分配的 SessionToken-Session: 指的是框架为每个 token 分配的 SessionCustom-Session: 指的是以一个特定的值作为 SessionId来分配的 Session 
Token-Session 
缓存用户信息 
public static void login(SysUser userInfo) {// 请求作用域存储的数据只在一次请求内有效请求结束后数据自动清除。SaStorage storage  SaHolder.getStorage();storage.set(LOGIN_USER_KEY, userInfo);storage.set(USER_KEY, userInfo.getUserId());// 第1步先登录上StpUtil.login(userInfo.getUserId());// 第3步缓存用户信息StpUtil.getTokenSession().set(LOGIN_USER_KEY, userInfo);
}获取用户信息 
public static SysUser getLoginUser() {SysUser loginUser  (SysUser) SaHolder.getStorage().get(LOGIN_USER_KEY);if (loginUser ! null) {return loginUser;}loginUser  (SysUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY);SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser);return loginUser;
}接口测试 
GetMapping(info)
Operation(summary  获取当前用户全部信息)
public RSysUser userInfo() {SysUser sysUser  LoginHelper.getLoginUser();System.out.println();System.out.println(JSONUtil.toJsonStr(sysUser));System.out.println();return R.ok(null);
}接口调用打印如下 {userId:1,username:mingyue,nickname:明月,sex:0,password:123456,phone:13288888888,status:0,isDeleted:0,createTime:1689757582000,updateTime:1689757585000,createBy:mingyue,updateBy:mingyue}获取用户权限信息 
接口层 
GetMapping(info)
Operation(summary  获取当前登录用户全部信息)
public RUserInfoVo userInfo() {return R.ok(sysUserService.getUserInfo());
}业务层 
Override
public UserInfoVo getUserInfo() {UserInfoVo result  new UserInfoVo();SysUser sysUser  LoginHelper.getLoginUser();// 密码置空sysUser.setPassword(null);result.setSysUser(sysUser);// 设置角色列表SetString rolePermission  sysRoleService.getRolePermission(sysUser.getUserId());result.setRoles(rolePermission);// 设置权限列表SetString menuPermission  sysMenuService.getMenuPermission(sysUser.getUserId());result.setRoles(menuPermission);return result;
}测试接口 Authorization Token 通过登录接口获取 curl -X GET \
http://mingyue-gateway:9100/system/sysUser/info \
-H accept: */* \
-H Authorization: vXPJnADIcTPfKuP3reBYmmUAi4xjw8nf接口返回 {code: 200,msg: 操作成功,data: {sysUser: {userId: 1,username: mingyue,nickname: 明月,sex: 0,password: null,phone: 13288888888,email: null,avatar: null,status: 0,isDeleted: 0,createTime: 2023-07-19T17:06:22,updateTime: 2023-07-19T17:06:25,createBy: mingyue,updateBy: mingyue},permissions: null,roles: [null,system:user:list]}
}获取用户路由信息 
接口层 
GetMapping(getRouters)
Operation(summary  获取路由信息)
public RListRouterVo getRouters() {Long userId  LoginHelper.getLoginUser().getUserId();return R.ok(sysMenuService.getRouters(userId));
}业务层 
Override
public ListRouterVo getRouters(Long userId) {ListSysMenu sysMenus  sysMenuMapper.selectMenuTreeByUserId(userId);return this.recursionMenu(sysMenus, -1L);
}/*** 递归菜单构建菜单树*/
private ListRouterVo recursionMenu(ListSysMenu sysMenus, Long pid) {ListRouterVo tree  CollUtil.newArrayList();for (SysMenu menu : sysMenus) {if (menu.getParentId().equals(pid)) {RouterVo router  new RouterVo();router.setPath(/  menu.getPath());router.setName(menu.getPath());router.setComponent(menu.getComponent());router.setRedirect(menu.getRedirect());MetaVo metaVo  new MetaVo();metaVo.setTitle(menu.getMenuName());metaVo.setIsLink(menu.getIsLink());metaVo.setIsHide(UserConstants.IS_HIDE.equals(menu.getIsHide()));metaVo.setIsKeepAlive(UserConstants.IS_KEEP_ALIVE.equals(menu.getIsKeepAlive()));metaVo.setIsAffix(UserConstants.IS_AFFIX.equals(menu.getIsAffix()));metaVo.setIsIframe(UserConstants.IS_IFRAME.equals(menu.getIsIframe()));metaVo.setIcon(menu.getIcon());router.setMeta(metaVo);router.setChildren(recursionMenu(sysMenus, menu.getMenuId()));tree.add(router);}}return tree;
}测试接口 
curl -X GET \
http://mingyue-gateway:9100/system/sysMenu/getRouters \
-H accept: */*
-H Authorization: vXPJnADIcTPfKuP3reBYmmUAi4xjw8nf接口返回 {code: 200,msg: 操作成功,data: [{path: /system,name: system,component: null,redirect: null,meta: {title: 系统管理,isLink: 0,isHide: false,isKeepAlive: false,isAffix: false,isIframe: false,icon: iconfont icon-xitongshezhi},children: [{path: /user,name: user,component: /system/user,redirect: null,meta: {title: 用户管理,isLink: 0,isHide: false,isKeepAlive: false,isAffix: false,isIframe: false,icon: iconfont icon-icon-},children: []},...]}]
}小结 
现在用户已经拿到权限点了接下来整合一下权限点与 Sa-Token 的使用看看 Sa-Token 如何通过权限点控制接口访问。 文章转载自: http://www.morning.rxcqt.cn.gov.cn.rxcqt.cn http://www.morning.ckhry.cn.gov.cn.ckhry.cn http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.yhywr.cn.gov.cn.yhywr.cn http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.yqfdl.cn.gov.cn.yqfdl.cn http://www.morning.gthwr.cn.gov.cn.gthwr.cn http://www.morning.pfggj.cn.gov.cn.pfggj.cn http://www.morning.ngmjn.cn.gov.cn.ngmjn.cn http://www.morning.mxftp.com.gov.cn.mxftp.com http://www.morning.qklff.cn.gov.cn.qklff.cn http://www.morning.fphbz.cn.gov.cn.fphbz.cn http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.ppqjh.cn.gov.cn.ppqjh.cn http://www.morning.ynlpy.cn.gov.cn.ynlpy.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.sfyqs.cn.gov.cn.sfyqs.cn http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.mtrz.cn.gov.cn.mtrz.cn http://www.morning.rfljb.cn.gov.cn.rfljb.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.sphft.cn.gov.cn.sphft.cn http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn http://www.morning.hnhgb.cn.gov.cn.hnhgb.cn http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn http://www.morning.wpydf.cn.gov.cn.wpydf.cn http://www.morning.frcxx.cn.gov.cn.frcxx.cn http://www.morning.owenzhi.com.gov.cn.owenzhi.com http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.kpgms.cn.gov.cn.kpgms.cn http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn http://www.morning.kltmt.cn.gov.cn.kltmt.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.knngw.cn.gov.cn.knngw.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn http://www.morning.pjwml.cn.gov.cn.pjwml.cn http://www.morning.dndk.cn.gov.cn.dndk.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn http://www.morning.nlrp.cn.gov.cn.nlrp.cn http://www.morning.drggr.cn.gov.cn.drggr.cn http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn http://www.morning.ykxnp.cn.gov.cn.ykxnp.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.qjngk.cn.gov.cn.qjngk.cn http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn http://www.morning.jsxrm.cn.gov.cn.jsxrm.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.qnzld.cn.gov.cn.qnzld.cn http://www.morning.qncqd.cn.gov.cn.qncqd.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.xnrgb.cn.gov.cn.xnrgb.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.lrdzb.cn.gov.cn.lrdzb.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.nflpk.cn.gov.cn.nflpk.cn http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn http://www.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.fjlsfs.com.gov.cn.fjlsfs.com