Какой ответ ищет AppAuth, чтобы закрыть окно браузера и выполнить запрос?

Я пытаюсь использовать AppAuth, чтобы получить код аутентификации из Instagram, перенаправить на свой сервер и обменять этот код аутентификации на собственный токен Firebase. У меня проблемы с передачей данных в AppAuth и закрытием окна браузера.

Что пока работает

  1. Мобильное приложение регистрирует пользовательскую схему, myscheme:/
  2. AppAuth достигает конечной точки авторизации Instagram, получает действительный code, перенаправляет на https://myserver.com
  3. AppAuth достигает https://myserver.com, предоставляет code, ожидает ответа
  4. Мой сервер достигает конечной точки токена Instagram, обменивает code/etc на действительный token
  5. Мой сервер использует этот token для создания действительного Firebase token

В этот момент окно браузера AppAuth открыто и ожидает ответа от моего сервера. На сервере есть Firebase token. Желаемый следующий шаг — предоставить этот токен AppAuth, чтобы AppAuth закрыл окно браузера и завершил процесс.

Что я пробовал:

  1. Вернуть перенаправление на myscheme:/instagram?token=Firebase token

Это закрывает окно браузера AppAuth, но процесс не завершается, поэтому AppAuth не возвращает никаких результатов. Он продолжает ждать, даже если окно браузера закрыто.

  1. Настройте прослушиватель пользовательской схемы и перенаправьте на myscheme:/instagram?token=Firebase token

Это имеет тот же результат, что и 1., но прослушиватель пользовательской схемы не фиксирует это событие, и даже если бы он это сделал, у меня нет возможности отменить процесс AppAuth. Это кажется хакерским в лучшем случае.

Чтобы уточнить вопрос:

Что нужно AppAuth, чтобы закрыть окно браузера и завершить рукопожатие? Что он ищет?


person Luke Pighetti    schedule 27.09.2019    source источник


Ответы (1)


Является ли это проблемой пользовательских вкладок Chrome на Android, которая периодически возникает? Если это так, это может быть связано с отсутствием пользовательского жеста — раздражающее требование, предъявляемое нам Google. Недавно я писал об этом на up.son: https://authguidance.com/2019/09/13/android-code-sample-overview/

Извините, если у вас другая проблема..

person Gary Archer    schedule 30.09.2019
comment
Я так не думаю. Вопрос в том, какой ответ AppAuth ищет от сервера токенов. - person Luke Pighetti; 30.09.2019
comment
Хм, кажется, лучшим вариантом было бы избежать смешивания проблем и сделать так, чтобы ваш мобильный пользовательский интерфейс получал токен Instagram стандартным способом appauth. Кроме того, ваше приложение может получать токены Firebase — через мобильный вызов на серверную часть, предоставляя токен Instagram. Это будет технически проще и даст вам больше возможностей для таких вещей, как обновление токена. - person Gary Archer; 02.10.2019