angular - 授权后获取用户角色
问题描述
我想使用基于 OAuth2 的 Angular 9 实现 Spring Boot 项目以提高安全性。我不清楚的问题是在用户身份验证后获取用户角色的最佳方式是什么。我找到了两种方法:
在使用 OAuth2 对用户进行身份验证后正确添加到响应负载中:
{ "access_token": "wdwdw", "token_type": "bearer", "refresh_token": "wdwdwdwd", "expires_in": 4, "scope": "read", "role": [ "ROLE_ADMIN" ], "jti": "wfwfe" }
第二种方法是使用第二个 API 调用
oauth/check_token
来获取角色:
$ curl localhost:8080/oauth/check_token/?token=fc9e4ad4-d6e8-4f57-b67e-c0285dcdeb58
{
"scope": [
"read",
"write"
],
"active": true,
"exp": 1544940147,
"authorities": [
"ROLE_USER"
],
"client_id": "ger-client-id"
}
我很感兴趣这两种方式中哪一种在安全性和最佳实践方面更好。
解决方案
如果您需要根据用户权限控制路由和模块加载,我将采用第一种方式,这样您就不需要发出新请求来查找权限。
推荐阅读
- python - 如何将正则化参数传递给模型选择(sklearn)?
- c# - 尝试将窗口最小化到系统托盘时找不到 Thread.cs
- javascript - 在继续之前等待 fileReader 完成
- bash - rysnc 排除目录不起作用
- ios - 如何获得键盘的高度,包括swift 4中的建议栏
- javascript - 如何使用某种条件根据用户信息显示帖子
- c++ - 等待 Windows 线程中的句柄
- r - R中按列的字符串流
- reactjs - 以编程方式使 React 项目中的 index.html 包含来自 package.json 的版本号
- python - 如何使用shutil.copy2?