寫在最前
如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。
源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning
源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui
文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis
開胃小菜
我們現(xiàn)在已經(jīng)可以通過登錄獲取用戶擁有的角色和菜單權(quán)限,但截止目前還沒有給接口增加權(quán)限點,本章就是通過給接口增加權(quán)限點,精細(xì)控制接口權(quán)限。
獲取當(dāng)前登錄用戶全部信息
接口返回如下,這里我們看到
mingyue
擁有system:user:list
權(quán)限
{
"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"
},
"menuPermission": [
"system:user:list"
],
"rolePermission": [
"admin"
]
}
}
添加接口權(quán)限
通過 獲取所有用戶信息
接口演示添加接口權(quán)限,此時該接口還沒有增加權(quán)限點攔截,此時我們登錄后訪問該接口可以正常返回數(shù)據(jù)。
增加權(quán)限點
添加注解
@SaCheckPermission("system:user:list")
@GetMapping("list")
@SaCheckPermission("system:user:list")
@Operation(summary = "獲取所有用戶信息")
public R<List<SysUser>> getSysUsers() {
return R.ok(sysUserService.list());
}
訪問測試
我們用戶不是擁有
system:user:list
權(quán)限點么?為何訪問接口報錯:無此權(quán)限:system:user:list。因為我們并未告訴 Sa-Token 我們擁有system:user:list
權(quán)限點,接下來我們在 Sa-Token 中添加用戶擁有的權(quán)限點。
{
"code": 500,
"msg": "無此權(quán)限:system:user:list",
"data": null
}
Sa-Token 添加用戶擁有的權(quán)限點
1. Sa-Token 權(quán)限管理實現(xiàn)
/**
* Sa-Token 權(quán)限管理實現(xiàn)
*
* @author Strive
* @date 2023/8/8 14:54
*/
public class SaPermissionImpl implements StpInterface {
@Override
public List<String> getPermissionList(Object loginId, String loginType) {
LoginUser loginUser = LoginHelper.getLoginUser();
System.out.println(JSONUtil.toJsonStr(loginUser.getMenuPermission()));
return new ArrayList<>(loginUser.getMenuPermission());
}
@Override
public List<String> getRoleList(Object loginId, String loginType) {
LoginUser loginUser = LoginHelper.getLoginUser();
return new ArrayList<>(loginUser.getRolePermission());
}
}
2. Sa-Token 配置注入權(quán)限接口實現(xiàn)
@AutoConfiguration
public class SaTokenConfiguration {
/**
* 權(quán)限接口實現(xiàn)(使用bean注入方便用戶替換)
*/
@Bean
public StpInterface stpInterface() {
return new SaPermissionImpl();
}
}
再次訪問測試
此時接口已經(jīng)可以訪問啦,快試試吧!
{
"code": 200,
"msg": "操作成功",
"data": [
{
"userId": 1,
"username": "mingyue",
"nickname": "明月",
"sex": "0",
"password": "123456",
"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"
},
... ...
]
}
MingYue-UI 替換后端菜單
修改路由控制
修改
themeConfig.ts
配置文件切換后端接口加載路由菜單true:開啟后端控制路由
false:開啟前端控制路由
// 是否開啟后端控制路由
isRequestRoutes: true,
更新路由接口
mingyue-ui/src/api/menu/index.ts
getMenu: (params?: object) => {
return request({
url: '/api/system/sysMenu/getRouters',
method: 'get',
params,
});
}
數(shù)據(jù)腳本
更新菜單數(shù)據(jù),數(shù)據(jù)源:docker/mysql/mingyue.sql
小結(jié)
終于可以精細(xì)控制后端接口權(quán)限了,前端路由也通過后端接口加載了。文章來源:http://www.zghlxwxcb.cn/news/detail-641841.html
接下來我們修改一下用戶密碼吧,目前還是明文傳輸,非常的不安全~文章來源地址http://www.zghlxwxcb.cn/news/detail-641841.html
到了這里,關(guān)于019-從零搭建微服務(wù)-認(rèn)證中心(八)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!