在 ios 注销时删除 cookie
Removing cookies while logout in ios
我正在开发 iOS 应用程序的登录模块。使用一些用户名和密码登录时,我将用户配置文件作为响应,并将状态作为登录成功。那时我在 NSUserDefaults 中保存登录状态。
点击注销按钮后,我在 NSUserDefaults
中将登录状态设置为 false。但是再次登录另一个登录 ID,我得到的响应是 "already logged in"。我必须删除 iOS 中的任何 cookies 吗?
这是我的示例代码
@IBAction func Login(sender: AnyObject) {
var mode:NSString = "signin"
var useremail:NSString = "bbbbbb@ffffff.net"
//var usermobile:NSString = txtEmail.text
var pwd:NSString = "123456"//"kKAOWX33zUDlcUpptZOoQA%3D%3D"
var decrypt:Int = 0//1
var postString = "http://myaccount.ddddddddd.com/network/sdasdasdasdsh.aspx?"
var postData = NSString(format:"mode=signin&useremail=%@&pwd=%@&userauth=PPZGySCKmspQ56iALuPpvw==&Decrypt=%d&App=1",useremail,pwd,decrypt)
var dataExample : NSData = NSData()
dataExample = postData.dataUsingEncoding(NSUTF8StringEncoding)!
var postRequest:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: postString)!)
postRequest.HTTPMethod = "POST"
postRequest.HTTPBody = dataExample
NSURLConnection.sendAsynchronousRequest(postRequest, queue: NSOperationQueue .mainQueue()){ (response : NSURLResponse!, data : NSData!, error : NSError!) -> Void in
if data != nil && data.length != 0
{
println()
var asyncError = NSError?()
print(asyncError)
var strin:NSString = NSString(bytes: data.bytes, length: data.length, encoding: NSUTF8StringEncoding)!
var jsonValue: NSDictionary? = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions(), error: nil) as? NSDictionary
NSLog("Result %@",jsonValue!)
self.loginButton.setTitle("Logout", forState: UIControlState())
}
}
请帮我解决这个问题。
我想我明白了....
if status == true{
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "LoginStatus")
var mode:NSString = "signin"
var useremail:NSString = "xxxxx@yyyyy.net"
................................
blah blah blah go to the end line now
var jsonValue: NSDictionary? = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions(), error: nil) as? NSDictionary
NSLog("Result %@",jsonValue!)
self.loginButton.setTitle("Logout", forState: UIControlState())
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "LoginStatus")
//// 在这里你设置了 LoginStatus 的 bool 值,不管怎样,它总是保持登录状态
}
对于 NSUserDefaults,在设置变量 True 或 False 后随时在设置后写在下面一行。 . .
[[NSUserDefaults standardUserDefaults] synchronize];
因为 NSUserDefaults 每次都需要与应用同步。
最后得到如下答案
postRequest.HTTPShouldHandleCookies = false
我正在开发 iOS 应用程序的登录模块。使用一些用户名和密码登录时,我将用户配置文件作为响应,并将状态作为登录成功。那时我在 NSUserDefaults 中保存登录状态。
点击注销按钮后,我在 NSUserDefaults
中将登录状态设置为 false。但是再次登录另一个登录 ID,我得到的响应是 "already logged in"。我必须删除 iOS 中的任何 cookies 吗?
这是我的示例代码
@IBAction func Login(sender: AnyObject) {
var mode:NSString = "signin"
var useremail:NSString = "bbbbbb@ffffff.net"
//var usermobile:NSString = txtEmail.text
var pwd:NSString = "123456"//"kKAOWX33zUDlcUpptZOoQA%3D%3D"
var decrypt:Int = 0//1
var postString = "http://myaccount.ddddddddd.com/network/sdasdasdasdsh.aspx?"
var postData = NSString(format:"mode=signin&useremail=%@&pwd=%@&userauth=PPZGySCKmspQ56iALuPpvw==&Decrypt=%d&App=1",useremail,pwd,decrypt)
var dataExample : NSData = NSData()
dataExample = postData.dataUsingEncoding(NSUTF8StringEncoding)!
var postRequest:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: postString)!)
postRequest.HTTPMethod = "POST"
postRequest.HTTPBody = dataExample
NSURLConnection.sendAsynchronousRequest(postRequest, queue: NSOperationQueue .mainQueue()){ (response : NSURLResponse!, data : NSData!, error : NSError!) -> Void in
if data != nil && data.length != 0
{
println()
var asyncError = NSError?()
print(asyncError)
var strin:NSString = NSString(bytes: data.bytes, length: data.length, encoding: NSUTF8StringEncoding)!
var jsonValue: NSDictionary? = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions(), error: nil) as? NSDictionary
NSLog("Result %@",jsonValue!)
self.loginButton.setTitle("Logout", forState: UIControlState())
}
}
请帮我解决这个问题。
我想我明白了....
if status == true{
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "LoginStatus")
var mode:NSString = "signin"
var useremail:NSString = "xxxxx@yyyyy.net"
................................
blah blah blah go to the end line now
var jsonValue: NSDictionary? = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions(), error: nil) as? NSDictionary
NSLog("Result %@",jsonValue!)
self.loginButton.setTitle("Logout", forState: UIControlState())
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "LoginStatus")
//// 在这里你设置了 LoginStatus 的 bool 值,不管怎样,它总是保持登录状态 }
对于 NSUserDefaults,在设置变量 True 或 False 后随时在设置后写在下面一行。 . .
[[NSUserDefaults standardUserDefaults] synchronize];
因为 NSUserDefaults 每次都需要与应用同步。
最后得到如下答案
postRequest.HTTPShouldHandleCookies = false