Обработчик завершения SFAuthenticationSession не вызван - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь реализовать подход к обмену куки-файлами из Safari и App.Я использую 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 обратного вызова.

UPDATE

Я обнаружил, что яотсутствовал протокол в Info.plist.После добавления пользовательского протокола к нему был вызван обработчик.Тем не менее, обработчик назывался только секунда раз, когда я включил сеанс аутентификации.

Любая подсказка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...