我正在搜索以保存临时标记存储在我的django-rest框架中以执行一些GET/POST请求。这是我的代码:alamofire返回标记字符串
class API {
let apiBaseUrl = "https://myhost.tld"
func getToken(loginData: NSDictionary ,completionHandler: (NSDictionary?, NSError?) ->()) {
makePOST(loginData, section: "api-token-auth", completionHandler: completionHandler)
}
func getList(tokenStr: String, completionHandler: (NSDictionary?, NSError?) ->()) {
makeGET(tokenStr, section: "api/list", completionHandler: completionHandler)
}
func makePOST(login: NSDictionary, section: String, completionHandler: (NSDictionary?, NSError?) ->()) {
Alamofire.request(.POST, "\(apiBaseUrl)/\(section)/", parameters: login as! [String : String])
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value as? NSDictionary, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
}
func makeGET(token: String?=nil, section: String, completionHandler: (NSDictionary?, NSError?) ->()) {
Alamofire.request(.POST, "\(apiBaseUrl)/\(section)/", headers: ["Authorization":"Token \(token)"])
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value as? NSDictionary, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
}
}
因此,当我创建一个对象类型的API(),我可以视图返回我的令牌当我打电话为gettoken但我不知道如何来存储这些将它传递给api.getList(令牌)功能:
let api = API()
api.getToken(["username":"blah","password":"blah"]) { responseObject, error in
debugPrint("responseObject = \(responseObject!["token"])")
return
}...
谢谢!
你需要在本地存储令牌在您的设备? – MXV
@Daniel您可以将您的令牌存储在完成处理程序中的变量中 – Jared
我可以存储在钥匙串中,但其作为变量可以更好地传递到下一个函数。我如何可以在完成处理程序中放置新变量并全局存储? –