在我的 iOS 应用程序(特别是 iOS 11 )上使用AppAuth (v 0.90.0)进行 Google OAuth 身份验证时,会发生以下情况:
- 使用重定向 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,以便我可以在服务器端执行令牌交换。
在以前的 AppAuth 版本中,这是可能的,因为我能够resumeAuthorizationFlowWithURL
直接使用更新后的 URL 进行调用。
有没有办法支持这个用例而无需更新 AppAuth?