OAuth2认证后获取角色类型
Posted
技术标签:
【中文标题】OAuth2认证后获取角色类型【英文标题】:Get role type after OAuth2 authentication 【发布时间】:2020-10-30 16:14:54 【问题描述】:我使用 Spring 安全遗留堆栈实现了 OAuth2 身份验证。成功验证后,我收到此有效负载:
"access_token": "ed090e76-444b-4dd2-8c2a-15d3e52be31d",
"token_type": "bearer",
"refresh_token": "4ad590f1-2139-47b8-89f1-29ed4b461b53",
"expires_in": 30,
"scope": "read"
我在应用程序中有几种类型的角色。通常在服务器端渲染 Web 应用程序中,我只会根据用户角色显示 UI 组件,并且我会限制未经授权的内容。
在 Angular 中,还有一种基于用户角色显示数据的方法。但问题是Angular如何从BE Spring Server获取用户角色的类型?
身份验证成功后,我需要从 BE 获取用户角色。当有 SPA FE 时,这通常是如何实现的?
【问题讨论】:
因此,每次您向 BE 发出请求时,您都希望收到响应以及该呼叫的角色吗?还是一次接收角色,然后在后续请求中使用它 每次想拿到角色 当您在 BESecurityContextHolder.getContext().getAuthentication().getAuthorities()
中写入时,BE 中的角色也可用?
【参考方案1】:
默认情况下,Oauth2 Spring 集成使用自己的“令牌类型”(您可以在提供的“示例响应”中看到它们),如果您想使用 JWT(更易于内部管理),您必须指定如何处理他们开发JwtAccessTokenConverter
的适当行为。
在下面的link 中,您将能够看到一个完整集成的教程:JWT + Oauth2
另一方面,在下一个中,您将找到一个功能齐全的微服务,用作与 Spring 集成的 Oauth 2.0 安全服务器,其中包括其他几个自定义项:
Oauth 2 security server
以JwtAccessTokenConverter
实现here为例
【讨论】:
以上是关于OAuth2认证后获取角色类型的主要内容,如果未能解决你的问题,请参考以下文章