Обработчик завершения SFAuthenticationSession не вызван
Я пытаюсь реализовать подход к обмену куки-файлами из Safari и App. я использую SFAuthenticationSession
так как совместное использование куки было отключено. Я прочитал тему, и кажется, что это лучшее решение для достижения этой цели. Существует не так много блогов или репозиториев, которые можно использовать в качестве примера.
Я реализовал перенаправление изменений на стороне сервера следующим образом.
Сначала я сохраняю печенье как 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()
Вы можете заметить, что я не заинтересован в том, чтобы войти в систему, но получить cookie, сохраненные ранее.
Может кто-нибудь, пожалуйста, совет? Моя проблема в том, что, хотя сайт перенаправляет, обработчик завершения не вызывается, поэтому я не могу разобрать URL обратного вызова.
ОБНОВИТЬ
Я узнал, что пропускаю протокол в Info.plist
, После добавления пользовательского протокола к нему был вызван обработчик. Тем не менее, обработчик вызывался только во время второго сеанса аутентификации.
Любая подсказка?