Я использую Angular 5 и Keycloak-Angular в версии 2.x.x согласно этой документации: https://www.npmjs.com/package/keycloak-angular
Этот учебник мне не подходит. После входа в систему, когда появляется запрос токена, angular отправляет client_id и cllient_secret в качестве заголовка аутентификации в кодировке base64.
Сервер keycloak хочет, чтобы эта информация была частью тела формы сообщения.
Как я могу настроить модуль keycloak-angular в соответствии со своими потребностями?
Любая помощь приветствуется!





Поскольку вы хотите, чтобы ваш токен был в теле запроса POST. Я не думаю, что вы сможете использовать модуль напрямую. Будет лучше, если вы создадите свою собственную службу для получения токена keycloak и сохраните его в переменной службы, а затем напишете один перехватчик HTTP, который вставит токен в тело запроса POST. Нечто подобное указано в следующем блоге https://medium.com/@SumanthShankar/on-demand-login-with-keycloak-angular-4-5-ngrx-backend-api-bookmark-able-links-ecb065dc7993.
Но в сервисе CustomHttp вместо токена в шапке можно положить в теле.
Год назад я использовал keycloak с angular, но я никогда не отправлял токен в теле. Keycloak всегда ожидает его в заголовке. Я подумал, что вы можете использовать какую-то особую конфигурацию или перехватчик на стороне сервера, которому нужен токен в теле. Если нет особых обстоятельств, вы сможете использовать модуль, поставляемый с keycloak.
Я не хочу отправлять токен в теле. Чтобы получить токен аутентификации, мне нужно отправить почтовый запрос на сервер keycloak, который содержит, например, clientid, secret и ранее запрошенный код в теле запроса. Но модуль angular отправляет клиентов и секреты в голову. Я не думаю, что кто-то внес такие серьезные изменения в сервер.
Я попробовал еще раз. Мне нужно предоставить следующее в теле запроса на публикацию: code grant_type redirect_uri client_id client secret Затем я получаю ответ с ответом с токеном доступа и токеном идентификатора в заголовке ответа. Модуль angular keycloak вместо этого отправляет client_id и client_secred, закодированные в заголовке запроса. Мне действительно интересно, связано ли это со старой версией сервера или чем-то еще, и есть ли подходящий модуль для нашего сервера. Я рада твоей помощи.
Позвольте мне попробовать один раз ... Если я получу какой-либо ответ, я изменю ответ ... И я также добавлю комментарий
Поэтому я просто меняю access_type на public, теперь я получаю токен. Но после этого keycloak пытается открыть ... / account и отправляет токен в голову. Это также не сработает, потому что сервер хочет, чтобы файл cookie был в голове. У вас есть решение этой проблемы?
Решается изменением типа доступа на публичный.
Мы используем сервер keycloak и «официальный» модуль. Почему эти два несовместимы?