iOS 11 AppAuth обрабатывает URI перенаправления, которое перенаправляет

При использовании AppAuth (v 0.90.0) для аутентификации Google OAuth в моем приложении iOS, особенно для iOS 11, происходит следующее:

  1. Запустите аутентификацию Google на клиенте iOS с URI перенаправления http://myproduct.com/oauth-redirect, Поскольку идентификатор клиента совпадает с идентификатором веб-приложения, я не могу указать пользовательский URL.
  2. AppAuth запускает SFAuthenticationSession на клиенте, мне предлагается разрешить вход в систему. Выберите Продолжить. ( https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/iOS/OIDAuthorizationUICoordinatorIOS.m#L91-L95)
  3. http://myproduct.com/oauth-redirect перенаправляет на пользовательский URL myproduct://authи блок завершения SFAuthenticationSession выполняется с URL обратного вызова myproduct://auth,
  4. Когда AppAuth возобновляет поток проверки подлинности, он проверяет, совпадает ли исходный URL-адрес с URL-адресом обратного вызова из предыдущего шага: https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/OIDAuthorizationService.m#L108-L110
  5. Так как http://myproduct.com/oauth-redirect а также myproduct://auth разные, поток останавливается.

Обратите внимание, что я использую clientID веб-приложения, чтобы я мог выполнять обмен токенами на стороне сервера.

В предыдущей версии AppAuth это было возможно, потому что я мог позвонить resumeAuthorizationFlowWithURL непосредственно с обновленным URL.

Есть ли способ поддержать этот вариант использования без обновления AppAuth?

1 ответ

просто зарегистрируйте идентификатор пакета приложения как настраиваемую схему URL в Info.plist 🥳

Другие вопросы по тегам