3

我很惊讶我不能或多或少清楚地解释callbackURLScheme (incl.completionHandler)的逻辑是如何工作的。

是的,一般来说,很明显它具有 url 模式,可以在 plist 文件中指定,以及深度链接的工作方式。

然而,

  • 它究竟是如何绑定到 ASWebAuthenticationSession/SFAuthenticationSession 流的?我的意思是,它是否在浏览器 url 中寻找类似的模式,如果它变得相等,它会拦截响应,关闭浏览器窗口并返回对应用程序的访问权限?

  • 如果没有定义 url 架构,但我只是使用关联域怎么办?我应该指定传递给服务器的“返回”url,还是应该有模式?

  • 如果我为它传递 null 怎么办?互联网上有一些注释,它以某种神奇的方式绑定到 plist 文件,但同样,没有关于此的特定文档。

真的很感激答案!

4

1 回答 1

1

ASWebAuthenticationSession 真的有点神秘。Swift 标头可以提供一些启示。(跳转到定义:Command+右键Xcode中的ASWebAuthenticationSession类)

完成后,服务将发送带有身份验证令牌的回调 URL,此 URL 将由 ASWebAuthenticationSessionCompletionHandler 传递给应用程序。回调 URL 通常具有自定义 URL 方案。要让应用程序接收回调 URL,它需要在其 Info.plist 中注册自定义 URL 方案,或者在初始化程序中将方案设置为 callbackURLScheme 参数。

实际上,我的测试表明,在 ios 14 上它可以按描述工作。您需要注册自定义 URL 方案并为相应的参数提供 nil 或只输入参数。或两者。成功登录的完成按预期调用。文档中未提及此类详细信息。

于 2021-11-15T12:46:15.240 回答