Safari とアプリから 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
。カスタム プロトコルを追加した後、ハンドラーが呼び出されました。それにもかかわらず、ハンドラーが呼び出されたのは、認証セッションを2回行ったときだけでした。
どんな手掛かり?