iOS アプリ、特に iOS 11 で Google OAuth 認証にAppAuth (v 0.90.0)を使用すると、次のようになります。
- リダイレクト URI を使用して、iOS クライアントで Google 認証を開始します
http://myproduct.com/oauth-redirect
。クライアント ID は Web アプリケーションの ID であるため、カスタム URL を指定できません。 - AppAuth がクライアントで SFAuthenticationSession を開始すると、サインインを許可するよう求められます。[続行] を選択します。( https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/iOS/OIDAuthorizationUICoordinatorIOS.m#L91-L95 )
http://myproduct.com/oauth-redirect
はカスタム URLmyproduct://auth
にリダイレクトし、SFAuthenticationSession 完了ブロックは のコールバック URL で実行されますmyproduct://auth
。- AppAuth が認証フローを再開すると、元の URL が前のステップのコールバック URL と同じかどうかがチェックされます: https://github.com/openid/AppAuth-iOS/blob/0.90.0/Source/OIDAuthorizationService.m #L108-L110
http://myproduct.com/oauth-redirect
とが違うのでmyproduct://auth
、流れが止まります。
サーバー側でトークン交換を実行できるように、Web アプリの clientID を使用していることに注意してください。
resumeAuthorizationFlowWithURL
以前の AppAuth バージョンでは、更新された URL で直接呼び出すことができたので、これが可能でした。
AppAuth を更新せずにこのユース ケースをサポートする方法はありますか?