如何在 RestFul 应用程序中使用 OAuth 2 在前端处理用户权限?

Posted

技术标签:

【中文标题】如何在 RestFul 应用程序中使用 OAuth 2 在前端处理用户权限?【英文标题】:How to handle user permissions in front-end with OAuth 2 in RestFul applications? 【发布时间】:2020-09-27 03:46:53 【问题描述】:

假设我们有一个基于 restFul 和 OAuth2 实现的应用程序,当然我们已经将用户的角色和权限存储在由 Java 和 Spring Boot 实现的后端。所以我想知道我们如何在前端处理用户的权限。实际上,有些字段或列应该显示给具有特定权限或角色的用户,但其他用户只能看到有限的字段或列。

对于这种情况,最有效和最明智的解决方案是什么?

前端是否应该从后端获取可用字段或列? 前端是否应该拥有所有关于用户凭据的信息来决定? 或者有什么解决方案可以做到这一点?

【问题讨论】:

【参考方案1】:

这是最常见的解决方案,其中所有安全性都由 API 强制执行:

API 响应省略了用户无权访问的字段/列 UI 可以询问 API 用户有权访问哪些字段/列 UI 隐藏基于此 API 元数据的元素

通常会有这样的端点,UI 可以向其发送访问令牌以获取上述元数据:

GET /api/userclaims/current

【讨论】:

以上是关于如何在 RestFul 应用程序中使用 OAuth 2 在前端处理用户权限?的主要内容,如果未能解决你的问题,请参考以下文章

将 OpenID (RPX)(可能还有 OAuth)用于 RESTful Web 服务

在这种 SaaS 场景中,OAuth 是 RESTful API 的好选择吗?

在 Spring Boot OAUTH2 中返回 RESTful/json 响应而不是登录表单

使用Spring Security和OAuth2实现RESTful服务安全认证

使用 MEAN.js Restful 无会话 API 后端的 Oauth 社交登录

Spring security oauth2.0 restful 和 Form 登录配置