如何使用 swift 3 响应中的访问令牌
How to use access token from response using swift 3
所以我正在制作一个发送用户名和密码的登录应用程序,服务器用访问令牌回复....我试图保存这个令牌供以后使用,但我真的不能。这是我的代码,服务器响应以备不时之需
导入 UIKit
class ViewController: UIViewController {
@IBOutlet weak var PhoneNumber: UITextField!
@IBOutlet weak var Password: UITextField!
//***************************************LogIn**********************************************\
@IBAction func Login(_ sender: UIButton) {
guard let url = URL(string: "https://goollyapp.azurewebsites.net/Token") else {return}
var request = URLRequest(url: url)
request.httpMethod = "POST"
let postString = "username=" + PhoneNumber.text! + "&password="+Password.text!+"&grant_type=password"
print(postString)
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let response = response {
print(response)
}
}
task.resume()
}
}
声明 json
变量的地方替换为:
let json = try? JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
然后您可以通过以下方式访问令牌:
let token = json["access_token"] as! String
(收到成功的 JSON 响应后)
然后您可以按如下方式实现单例:
class Token {
// Can't init a singleton
private init() { }
static let sharedInstance = Token()
var tokenString = ""
}
如果您想将令牌保存在一个变量中以便以后使用,试试这个
(键是您响应对象中键的对应名称)
let token = httpResponse?.allHeaderFields["SECURITY-TOKEN"] as? String
let task = URLSession.shared.dataTask(with: request) { data, response, error in
let httpResponse = response as? HTTPURLResponse
let token = httpResponse?.allHeaderFields["SECURITY-TOKEN"] as? String
print(token)
}
task.resume()
所以我正在制作一个发送用户名和密码的登录应用程序,服务器用访问令牌回复....我试图保存这个令牌供以后使用,但我真的不能。这是我的代码,服务器响应以备不时之需 导入 UIKit
class ViewController: UIViewController {
@IBOutlet weak var PhoneNumber: UITextField!
@IBOutlet weak var Password: UITextField!
//***************************************LogIn**********************************************\
@IBAction func Login(_ sender: UIButton) {
guard let url = URL(string: "https://goollyapp.azurewebsites.net/Token") else {return}
var request = URLRequest(url: url)
request.httpMethod = "POST"
let postString = "username=" + PhoneNumber.text! + "&password="+Password.text!+"&grant_type=password"
print(postString)
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let response = response {
print(response)
}
}
task.resume()
}
}
声明 json
变量的地方替换为:
let json = try? JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
然后您可以通过以下方式访问令牌:
let token = json["access_token"] as! String
(收到成功的 JSON 响应后)
然后您可以按如下方式实现单例:
class Token {
// Can't init a singleton
private init() { }
static let sharedInstance = Token()
var tokenString = ""
}
如果您想将令牌保存在一个变量中以便以后使用,试试这个 (键是您响应对象中键的对应名称)
let token = httpResponse?.allHeaderFields["SECURITY-TOKEN"] as? String
let task = URLSession.shared.dataTask(with: request) { data, response, error in
let httpResponse = response as? HTTPURLResponse
let token = httpResponse?.allHeaderFields["SECURITY-TOKEN"] as? String
print(token)
}
task.resume()