授权后获取用户角色



为了安全起见,我想用基于OAuth2的Angular 9实现Spring Boot项目。我不清楚的问题是,在用户身份验证后,获得用户角色的最佳方式是什么。我找到了两种方法:

  1. 使用OAuth2对用户进行身份验证后,将其正确添加到响应负载中:

    {
    "access_token": "wdwdw",
    "token_type": "bearer",
    "refresh_token": "wdwdwdwd",
    "expires_in": 4,
    "scope": "read",
    "role": [
    "ROLE_ADMIN"
    ],
    "jti": "wfwfe"
    }
    
  2. 第二种方法是使用对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"
}

我感兴趣的是,在安全性和最佳实践方面,这两种方式中哪一种更好。

如果您我需要根据用户权限控制路由和模块加载,我会选择第一种方式,这样您就不需要启动新的"只查找权限"请求。

我更喜欢第一种方式,无论安全凭据将作为对象属性传递,您都可以使用它。

最新更新