未调用 SFAuthenticationSession 完成处理程序

CRo*_*oig 5 cookies safari ios swift sfauthenticationsession

我正在尝试实施一种从 Safari 和 App 交换 cookie 的方法。我正在使用,SFAuthenticationSession因为 cookie 共享被禁用。我通读了这个主题,似乎这是实现这一目标的最佳解决方案。没有太多的博客或回购作为例子。

我已经在服务器端实现了以下更改重定向。

首先,我将 cookie 存储为https://example.com/?cookie=12345. 然后从应用程序我开始一个身份验证会话指向https://example.com/getcookie重定向到customapp://dummy/cookies?cookie=12345

曾经说过这一点。快速实现如下(多亏了这个):

let callbackUrl  = "customapp://dummy/cookies"
let authURL = "https://example.com/getcookie"

self.authSession = SFAuthenticationSession(url: URL(string: authURL)!, callbackURLScheme: callbackUrl, completionHandler: { (callBack:URL?, error:Error? ) in
    guard error == nil, let successURL = callBack else {
        return
    }

    let cookie = self.parseQuery(url: (successURL.absoluteString), param: "cookie")
    print(cookie!)

    })

self.authSession?.start()
Run Code Online (Sandbox Code Playgroud)

您可能会注意到我对登录不感兴趣,而是对之前存储的 cookie 感兴趣。

任何人都可以请教吗?我的问题是,虽然站点正在重定向,但未调用完成处理程序,因此我无法解析回调 url。

更新

我发现我在Info.plist. 在向其添加自定义协议后,将调用处理程序。尽管如此,处理程序仅在我第二次参与身份验证会话时才被调用。

有什么线索吗?