Я пытаюсь реализовать подход к обмену куки-файлами из 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
.После добавления пользовательского протокола к нему был вызван обработчик.Тем не менее, обработчик назывался только секунда раз, когда я включил сеанс аутентификации.
Любая подсказка?