类型错误clientsettings.userStore不是ng-oidc-client JS库的函数

时间:2019-04-17 03:35:48

标签: javascript angular typeerror oidc

我正在使用ng-oidc-client软件包将我的身份验证服务器与一个有角度的网站集成在一起。注意我正在使用Angular 7和最新版本的node。

ng-oidc-client的版本是1.0.5,这是最新的。该库的对等依赖项也是最新的。运行时,出现以下错误,在我看来,这似乎是一个不兼容的问题。

Error

代码段- 这是我的appModule.ts中的代码,其中设置了oidc客户端模块配置-

NgOidcClientModule.forRoot({
        oidc_config: {
          authority: 'https://xxxxx.com.au/authentication',
          client_id: 'Paystay.localwebsite',
          userStore: new WebStorageStateStore({ store: window.localStorage }),
          redirect_uri: 'https://localhost:4200/callback.html',
          response_type: 'id_token',
          scope: 'openid profile',
          post_logout_redirect_uri: 'https://localhost:4200/signout-callback.html',
          silent_redirect_uri: 'https://localhost:4200/renew-callback.html',
          accessTokenExpiringNotificationTime: 60,
          automaticSilentRenew: true,
        },
        log: {
          logger: console,
          level: Log.NONE
        }
    }),

请注意,我在此处屏蔽了Authority URI。 其余代码是在Angular 2上集成此客户端的相当标准,我从此链接开始关注-https://www.npmjs.com/package/ng-oidc-client

更新-lib 1.0.0版似乎不存在此问题。我向作者提出了一个问题,并等待答复。

2 个答案:

答案 0 :(得分:2)

ng-oidc-client的配置是唯一可以通过当前提供的信息得出的可追溯原因。

通过将optional settings属性userStore定义为值new WebStorageStateStore({ store: window.localStorage })重新检查,否则上传源代码。

答案 1 :(得分:0)

我遇到了ng-oidc-client的类似问题。
我尝试使用基础库中的可选参数,但是NgOidcClientModule中不提供这些参数。
我将userStore的创建包装在一个函数中。

NgOidcClientModule.forRoot({
  oidc_config: {
    authority: `${window.location.origin}/auth/realms/xxx`,
    client_id: 'xxxxxx',
    response_type: 'id_token token',
    scope: 'openid profile offline_access roles',
    redirect_uri: `${window.location.origin}/callback.html`,
    post_logout_redirect_uri: `${window.location.origin}/signout-callback.html`,
    silent_redirect_uri: `${window.location.origin}/renew-callback.html`,
    automaticSilentRenew: true,
    userStore: () => new WebStorageStateStore({store: window.localStorage}),
  },
})