Я пытаюсь использовать AppAuth, чтобы получить код аутентификации из Instagram, перенаправить на свой сервер и обменять этот код аутентификации на собственный токен Firebase. У меня проблемы с передачей данных в AppAuth и закрытием окна браузера.
Что пока работает
- Мобильное приложение регистрирует пользовательскую схему,
myscheme:/
- AppAuth достигает конечной точки авторизации Instagram, получает действительный
code
, перенаправляет наhttps://myserver.com
- AppAuth достигает
https://myserver.com
, предоставляетcode
, ожидает ответа - Мой сервер достигает конечной точки токена Instagram, обменивает
code
/etc на действительныйtoken
- Мой сервер использует этот
token
для создания действительногоFirebase token
В этот момент окно браузера AppAuth открыто и ожидает ответа от моего сервера. На сервере есть Firebase token
. Желаемый следующий шаг — предоставить этот токен AppAuth, чтобы AppAuth закрыл окно браузера и завершил процесс.
Что я пробовал:
- Вернуть перенаправление на
myscheme:/instagram?token=Firebase token
Это закрывает окно браузера AppAuth, но процесс не завершается, поэтому AppAuth не возвращает никаких результатов. Он продолжает ждать, даже если окно браузера закрыто.
- Настройте прослушиватель пользовательской схемы и перенаправьте на
myscheme:/instagram?token=Firebase token
Это имеет тот же результат, что и 1., но прослушиватель пользовательской схемы не фиксирует это событие, и даже если бы он это сделал, у меня нет возможности отменить процесс AppAuth. Это кажется хакерским в лучшем случае.
Чтобы уточнить вопрос:
Что нужно AppAuth, чтобы закрыть окно браузера и завершить рукопожатие? Что он ищет?