5

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

我已经在服务器端实现了更改重定向,如下所示。

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

一旦表明这一点。快速实现如下(感谢this):

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()

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

有人可以请教吗?我的问题是,虽然网站正在重定向,但没有调用完成处理程序,所以我无法解析回调 url。

更新

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

有什么线索吗?

4

0 回答 0