3

在我的 iOS 应用程序(特别是 iOS 11 )上使用AppAuth (v 0.90.0)进行 Google OAuth 身份验证时,会发生以下情况:

  1. 使用重定向 URI 在 iOS 客户端上启动 Google 身份验证http://myproduct.com/oauth-redirect。因为客户端 ID 是 Web 应用程序的 ID,所以我无法指定自定义 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-redirectmyproduct://auth不同,所以流动停止。

请注意,我正在使用 Web 应用程序 clientID,以便我可以在服务器端执行令牌交换。

在以前的 AppAuth 版本中,这是可能的,因为我能够resumeAuthorizationFlowWithURL直接使用更新后的 URL 进行调用。

有没有办法支持这个用例而无需更新 AppAuth?

4

0 回答 0