如何将访问令牌传递给Alamofire?

我正在尝试在Alamofire传递访问令牌,但在Web上的各种方法中感到困惑。

以下是我们需要使用的方法。

 let todosEndpoint: String = "https:url......." let headers = [ "Authorization": "Bearer \(token!)", "Content-Type": "application/X-Access-Token" ] let Auth_header = [ "Authorization" : tokenString! ] Alamofire.request(todosEndpoint, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: Auth_header) .responseJSON { response in print("response.request \(response.request)") // original URL request print("response.response \(response.response)") // HTTP URL response print("response.data \(response.data)") // server data print("response.result \(response.result)") print("response \(response)") } } 

要么

 let aManager = SessionManager() aManager.session.configuration.httpAdditionalHeaders = [ "Authorization": "Bearer tokenString"] 

要么

 let headerss = [ "Authorization": tokenString] 

要么

 let aManager = SessionManager() aManager.session.configuration.httpAdditionalHeaders = [ "Authorization": "Basic tokenString"] 

什么是传递访问令牌的正确方法?

你有没有试过这个,可以在Alamofire文档中find:

 let headers: HTTPHeaders = [ "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", "Accept": "application/json" ] Alamofire.request("https://httpbin.org/headers", headers: headers).responseJSON { response in debugPrint(response) } 

另一个例子是:

 let user = "user" let password = "password" var headers: HTTPHeaders = [:] if let authorizationHeader = Request.authorizationHeader(user: user, password: password) { headers[authorizationHeader.key] = authorizationHeader.value } Alamofire.request("https://httpbin.org/basic-auth/user/password", headers: headers) .responseJSON { response in debugPrint(response) } 

还有一种方法是:

 let user = "user" let password = "password" let credential = URLCredential(user: user, password: password, persistence: .forSession) Alamofire.request("https://httpbin.org/basic-auth/\(user)/\(password)") .authenticate(usingCredential: credential) .responseJSON { response in debugPrint(response) } 

我使用的是这样的:

 let username = "Tuser" let password = "Tpassword" let credentialData = "\(username):\(password)".data(using: String.Encoding.utf8)! let base64Credentials = credentialData.base64EncodedString(options: []) let headers = ["Authorization": "Basic \(base64Credentials)"] 

要么

 let headers = [ "Authorization" : token ] 

这可以通过以下方式使用Alamofire完成:

  let url: String = "https:url......." var request = URLRequest(url: NSURL(string: url)! as URL) // Your request method type Get or post etc according to your requirement request.httpMethod = "POST" request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") request.setValue("application/json", forHTTPHeaderField: "Content-Type") // Your required parameter in case of Post request let parameters: [String: Any] = ["paramter1": "vaue1"] request.httpBody = try! JSONSerialization.data(withJSONObject: parameters ) Alamofire.request(request).responseJSON { (responseObject) -> Void in // Your required functionality here }