Ошибка типа clientsettings.userStore не является функцией с JS-библиотекой ng-oidc-client - PullRequest
1 голос
/ 17 апреля 2019

Я использую пакет ng-oidc-client для интеграции моего сервера аутентификации с угловым веб-сайтом. Обратите внимание, что я использую Angular 7 и последнюю версию узла.

Версия 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
        }
    }),

Обратите внимание, что здесь я замаскировал URI авторизации. Остальная часть кода довольно стандартна для интеграции этого клиента в Angular 2, который я перешел по этой ссылке - https://www.npmjs.com/package/ng-oidc-client

Обновление - Похоже, что проблема не в версии 1.0.0 библиотеки. Я поднял вопрос с автором и жду ответа.

Ответы [ 2 ]

2 голосов
/ 04 мая 2019

Конфигурация для ng-oidc-client является единственной прослеживаемой причиной, которая может быть получена из предоставленной в настоящее время информации.

Еще раз проверьте, задав необязательные параметры свойство userStore для значения new WebStorageStateStore({ store: window.localStorage }), иначе загрузите исходный код.

0 голосов
/ 08 мая 2019

Я столкнулся с аналогичной проблемой с 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}),
  },
})
...