Мне нужно реализовать гибридный поток проверки подлинности кода в приложении React Native для аутентификации с помощью OpenID Connect Identity Provider. В частности, IdP ожидает code id_token
в качестве типа ответа.
Я использовал response-native-app-auth и базовые библиотеки OpenID AppAuth-Android, но в настоящее время они не поддерживают этот поток - см. Проблемы # 75 и # 218 . Они поддерживают только один тип ответа, такой как «код» или «токен». Из-за этого я получаю ошибку от IdP, говорящую Unauthorized Client
. Я отправляю нужные области.
Шаги, которые я предпринял до сих пор:
- Изменить исходный код act-native-app-auth для Android, чтобы установить тип ответа - попытался указать разделенные пробелом значения (
code id_token
), строку в кодировке URL (code%20id_token
) и строковый массив JSON ("['code', 'id_token']"
). Это не сработало.
- Используйте веб-просмотр для входа в систему - я не смог извлечь окончательные токены с веб-страницы - они хранятся в хранилище сеансов, и мне нужно вынести их в приложение. Этот процесс также немного сложен для моего варианта использования, так как мне нужно наблюдать за несколькими потоками после аутентификации и требовать, чтобы некоторые параметры возвращались в ответе аутентификации.
В качестве последнего шага я изменяю официальную библиотеку Android для клиентов OpenID Connect - OpenID AppAuth Android . Постараюсь дать это как зависимость для реакции-native-app-auth.
Как я могу реализовать гибридный поток кода в приложении React Native? Любая помощь высоко ценится.