如何将 Angular 应用程序从 keycloak 登录重定向到特定路由

Nem*_*ric 7 angular-routing keycloak angular

我正在编写一个使用Keycloak 7.0.0进行用户身份验证和授权的Angular 8应用程序。

当前工作流程指定:

  1. 用户访问用 Angular 编写的网站
  2. 用户被重定向到 Keycloak 服务器以进行特定领域的登录
  3. 成功登录后,用户将被重定向到几个(Angular)路由之一——这取决于用户在 Keycloak 中定义的角色(但是,重定向路由是在一个获取用户角色和重定向的 angular 组件内确定的)。因此,登录后 Keycloak 重定向到空路由并且组件设置重定向路由。

问题是,成功登录后,如果用户要打开另一个选项卡并输入指定了路由的 URL,Keycloak 会找到当前会话的令牌和 cookie,而不对用户进行身份验证,但仍会将他重定向到空的路线。之后,根据用户角色重定向到路由的功能将重定向到用户角色的默认路由。

我对如何启用 Keycloak 感兴趣,在验证登录后,重定向到它收到的初始路由,而不仅仅是空路由?

我希望不需要代码,因为代码位于私有存储库中。我正在使用keycloak-angularkeycloak-js npm 模块。此外,我还定义了可以访问用户令牌并指定需要登录的keycloak.servise.ts

PS 我没有使用authguard来实现受保护的路由,但是 Keycloak 重定向到空路由,然后,根据用户的角色,空角色中的组件重定向到默认组件并锁定那些不允许的组件。