Ошибка при использовании keycloak-nodejs-connect - «Невозможно обменять код для предоставления в режиме только носителя» - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь реализовать клиентское приложение Node.js, аутентифицирующееся по Keycloak, и использующее внешний IDP, используя keycloak-nodejs-connector.Я следил за документацией, расположенной здесь для ее использования.

Однако после аутентификации клиентское приложение выдает ошибку: «Невозможно обменять код для предоставления в режиме только канала-носителя».Это сбивает с толку меня, потому что клиент не настроен для режима только канала-носителя, он настроен для конфиденциального режима.

Клиентское приложение успешно перенаправляет меня на внешний IDP, где я могу войти в систему. Если я смотрю в консоли администратора Keycloak, я также вижу активный сеанс для себя после входа в систему. Однако клиентприложение по-прежнему выдает ошибку.

Вот моя конфигурация клиента, извлеченная из консоли администратора Keycloak:

{
"realm": "master",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "local",
"verify-token-audience": true,
"credentials": {
    "secret": "redacted"
},
"use-resource-role-mappings": true,
"confidential-port": 0
}

Вот реализация в моем файле app.js для узла:

 var Keycloak = require('keycloak-connect');

 let keycloakMiddleware = new Keycloak({idpHint: 'SSO'});

 app.use( keycloakMiddleware.middleware() );

 app.get( '/', keycloakMiddleware.protect(), complaintHandler);

Iфайл keycloak.json находится в том же каталоге, что и app.js, и он собирает данные конфигурации клиента, указанные выше.

...