首页 > 解决方案 > Angular + OIDC 隐式流静默更新

问题描述

我正在使用angular-auth-oidc-client包在我的 Angular 应用程序中与我们的 OIDC 服务器进行身份验证。我们使用隐式流程,它可以工作,但是我们的一些用户在访问令牌生命周期结束时在应用程序中执行操作时会被注销。所以我们想要实现 Silent Renew 功能,该功能在包的文档中有详细说明。

因此,我添加了一个silent-renew.html文件并将其放置在/srcAngular 应用程序的文件夹中,并尝试将其放置在该/assets文件夹中。在/assets文件夹中时,我在控制台中收到 Angular 应用程序找不到匹配路由的错误:

在此处输入图像描述

它只出现一次,并且静默更新不起作用;你仍然被注销。如果它在/assets文件夹中,则不会出现错误,但静默更新仍然不起作用。

我真正的问题是:我在哪里放置silent-renew.html文件以及如何正确配置包以进行静默更新?

部署后,我们构建 Angular 应用程序并将其放置在由 NGINX 提供服务的 docker 容器中。在本地,我们只是使用 CLI 为应用程序提供服务。

标签: angularopenid-connect

解决方案


您可以按如下方式修改 angular.json:

{
  "projects": {
    "test2": {
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "assets": [
              "src/silent-renew.html" // <-- add this line
            ],
          },
        },
      }
    }
  }
}

当然,您必须有一个名为silent-renew.html.

进行构建时,此文件将被复制distindex.html.

希望这可以帮助

费边


推荐阅读