angular - Keycloak-angular 获取其他客户端的令牌
问题描述
我的应用程序中有以下组件:
- 自托管密钥斗篷服务器
- 后端 REST-API(资源服务器)
- 前端角度应用
keycloak 服务器配置为有 2 个客户端。一个公共客户端(角度应用程序)和一个具有授权服务的机密客户端(REST-API)。Angular 应用需要加载后端的权限,以根据用户的权限显示不同的 UI。获得所需权限的一种方法是使用 token_endpoint ,如下所示:
this.http
.get<{ token_endpoint: string }>(
`/auth/realms/${realm}/.well-known/uma2-configuration`,
)
.pipe(
flatMap(config =>
this.http.post(
config.token_endpoint,
`grant_type=urn:ietf:params:oauth:grant-type:uma-ticket&audience=${backendClientId}`,
{
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
},
),
),
);
如果我在返回的 access_token 中解码 JWT,我可以获得正确的权限。为此,我需要一个库来解码 JWT 并自己实现此令牌的刷新。我还没有找到任何关于如何使用 keycloak-angular 或 keycloak-js 库执行此操作的文档。
这是获取与用户和另一个客户端关联的权限列表的预期方式吗?如果是,我如何使用提供的库来实现它?
解决方案
推荐阅读
- c - 如何做线程和Makefile的问题
- android - Redmi 9 和 Android Studio - 通过 USB 安装已禁用
- c++ - 在 Linux 中从 C++ mongocloud 调用 mongofiles
- php - Laravel Relational Eloquent 急切加载如何获取最新的 5 位评论者用户信息
- c# - 根据权限从 Web API 返回属性?
- r - 为什么我在我的 R 代码中的子分配类型修复中出现错误:不兼容的类型(从 S4 到双精度)?
- c# - 如何组合 IEnumerable 的不同值?
- javascript - 传递一个返回数组作为参数的函数
- javascript - JQuery append() 信息即使在硬刷新后仍然存在
- agile - 如何管理需要多个 Sprint 的用户故事