0
私はすべてのWeb呼び出しのためにAlamofire
リクエストを使用しています。私がログインすると、最初にUSERNAMEとPASSWORDでリクエストを認証します。 USERNAMEがJOHN、PASSWORDが1234であるとします。Alamofireリクエストが認証されたときにログアウトするにはどうすればよいですか?
私はすぐにログアウトし、他の認証情報でログインしています。たとえば、USERNAMEはPITERで、PASSWORDは4321です。アプリケーションは古い認証情報JOHNと1234のみで再度ログインします。新しい値はまったく適用されません。
ログアウト時に、ログアウト時に以前のセッションを削除するにはどうすればよいですか? Authorizationヘッダ内
を追加しましたスニペット
func login(userName: String!, password:String!, completion: (error: NSError?) -> Void) {
print(userName) // Prints PETER for second attempt
Alamofire.request(
.GET,
Management.LOGIN_URL)
.authenticate(user: userName , password: password)
.responseJSON { response in
// But gives JOHN's data for second attempt
switch response.result {
case .Success(let JSON):
print(JSON)
self.setCookies(response)
self.setUserData(JSON as! NSDictionary)
completion(error: error)
}
case .Failure(let error):
completion(error: error)
}
}
}
func logout() {
Alamofire.Manager.sharedInstance.session.resetWithCompletionHandler {() -> Void in
print("Resetted")
}
}
private func setCookies(response: Alamofire.Response<AnyObject, NSError>) {
if let
headerFields = response.response?.allHeaderFields as? [String: String],
URL = response.request?.URL
{
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headerFields, forURL: URL)
Alamofire.Manager.sharedInstance.session.configuration.HTTPCookieStorage?.setCookies(cookies, forURL: response.response!.URL!, mainDocumentURL: nil)
}
}
あなたが試したコードを表示できます –
今すぐ追加します。 – iOS
この 'login'メソッドを呼び出した場所 –