2016-04-18 22 views
0

ich Alamofire bin mit einem einfachen AnfrageAlamofire Invalidate Credential

Alamofire.request(.GET, URL) 
    .authenticate(user: user, password: password)      
    .responseJSON { response in 
     ... 
} 

Nach einer ersten gültige Anforderung zu tun, änderte ich die Anmeldeinformationen mit ungültigen Einsen und der Antrag erfolgreich sein, aber es sollte nicht.

Wie kann ich vorherige Anmeldeinformationen ungültig machen?

Nach einer erfolgreichen Anfrage authentifiziert Alamofire die Anmeldeinformationen, wenn ich die Anmeldeinformationen ändere.

Wie kann ich vorherige Anmeldeinformationen ungültig machen?

Antwort

0

Hinzufügen Autorisierung Header hat mir geholfen.

let user = "user" 
let password = "password" 

let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)! 
let base64Credentials = credentialData.base64EncodedStringWithOptions([]) 

let headers = ["Authorization": "Basic \(base64Credentials)"] 

Alamofire.request(.GET, "https://httpbin.org/basic-auth/user/password", headers: headers) 
     .responseJSON { response in 
      debugPrint(response) 
     } 
1

Ich habe genau das gleiche erlebt. Die Antwort von iOS sollte funktionieren, aber ich werde Code-Snippet mit swift3 zur Verfügung stellen, damit jemand die Forschungszeit reduzieren kann.

let user = "aaaaa" 
let password = "myPassword" 

let plainString = "\(user):\(password)" 
let plainData = plainString.data(using: .utf8) 
let base64String = plainData?.base64EncodedString(options:NSData.Base64EncodingOptions(rawValue: 0)) 

let authString = "Basic " + base64String! 

// Set in in Authorize header like... 
let headers: HTTPHeaders = [ 
     "Authorization": authString, 
     "Accept": "application/json" 
    ] 

// And use it like this.. 
Alamofire.request("https://httpbin.org/headers", headers: headers).responseJSON { response in 
     debugPrint(response) 
    } 

Hier ist, wo dieser Fall diskutiert >>https://github.com/Alamofire/Alamofire/issues/32