首页 > 解决方案 > 授权后获取用户角色

问题描述

我想使用基于 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. 第二种方法是使用第二个 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"
}

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

标签: angularspring-security-oauth2angular9

解决方案


如果您需要根据用户权限控制路由和模块加载,我将采用第一种方式,这样您就不需要发出新请求来查找权限。


推荐阅读