为了安全起见,我想用基于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" }
-
第二种方法是使用对
oauth/check_token
的第二个API调用来获得角色:
$curl localhost:8080/oauth/check_token/?令牌=fc9e4ad4-d6e8-4f57-b67e-0285dcdeb58
{
"scope": [
"read",
"write"
],
"active": true,
"exp": 1544940147,
"authorities": [
"ROLE_USER"
],
"client_id": "ger-client-id"
}
我感兴趣的是,在安全性和最佳实践方面,这两种方式中哪一种更好。
如果您我需要根据用户权限控制路由和模块加载,我会选择第一种方式,这样您就不需要启动新的"只查找权限"请求。
我更喜欢第一种方式,无论安全凭据将作为对象属性传递,您都可以使用它。