猿问

是否可以使用 OAuth2 创建基于角色的应用程序?

我想要做的是创建一个具有 Angular 前端和带有 OAuth2 身份验证的 Spring Boot 后端的应用程序。

问题是我不知道如何进入 ROLES 用户拥有的前端,以便我能够,例如,在页面上显示基于角色的内容。
是的,OAuth 在响应中提供了一些范围,但问题是这些范围是针对 CLIENT 而不是针对特定 USER 本身的。那个 CLIENT 是我的前端(如果我错了请纠正我)这基本上意味着每个操作我的应用程序(客户端)的用户都将具有相同的范围(角色)。此外,我可以在和
的帮助下在后端指定角色,然后将这些角色与等一起使用。但在前端则不行。SpringUserDetailsService@PreAuthorize

举个例子,如果我只使用单个 JWT,然后使用令牌本身,我会将用户名和角色都返回给前端。然后我可以存储这些数据并根据我的需要在前端使用它。

所以我要问的是,这是否真的可能,这样做是否正确?我怎么可能实施这种行为?


牧羊人nacy
浏览 134回答 2
2回答

慕哥9229398

OAuth 不能解决这个问题,最好通过 API 中的声明来解决。OAuth 应该只处理身份验证。简而言之,您必须在 OAuth 处理完成后查找用户权限,例如角色。

largeQ

实现这一点的最简单和最好的方法可能是使用 OpenID Connect 服务器,它将提供所有用户管理内容。市场上有很多解决方案。Auth0 和 Okta 是 Identity Clouds,它们以少量资金提供服务。
随时随地看视频慕课网APP

相关分类

Java
我要回答