iOSのネイティブでユーザ名とパスワードを入力し、認証を行った後、そのセッションを維持したままWebViewへ飛ばす方法
iOSアプリを作っているときに、認証情報を次のWebViewへ持たせるときに詰まったので、その対処法を書きます。
認証を行った段階で、サーバから返答されるCookieを保存し、WebViewに渡します。
通信にはAlamofireを使っています
Alamofire.request("<url>",parameters: params)
.responseString { response in
let cookies = HTTPCookie.cookies(withResponseHeaderFields: response.response?.allHeaderFields as! [String : String], for: (response.response?.url!)!)
for i in 0 ..< cookies.count {
let cookie = cookies[i]
HTTPCookieStorage.shared.setCookie(cookie)
}
}
let authUrl = URL(string: "認証URL")
let url = URL(string: "ロードしたいURL")
var request = URLRequest(url: url)
let cookies = HTTPCookieStorage.shared.cookies(for: authUrl! as URL)
let header = HTTPCookie.requestHeaderFields(with: cookies!)
// Cookieをセットする
request.allHTTPHeaderFields = header
// webViewをロードする
webView.loadRequest(request as URLRequest)
Author And Source
この問題について(iOSのネイティブでユーザ名とパスワードを入力し、認証を行った後、そのセッションを維持したままWebViewへ飛ばす方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ktr17/items/ede2a58b1fb03f4394bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .