2015-12-02 93 views
0

即时通讯新的斯威夫特,不是很先进。 我有加载我学校的Moodle页面的WKWebView。我登录并执行内部操作,但是在我终止应用并重新启动后,它要求在日志中的细节再次,而不是保持登录状态。如何处理cookie以保持用户使用Swift登录?

我用不同的网站(YouTube)的尝试,它让我登陆,即使我杀的应用程序。所以我假设它的方式网站饼干工作

这是我从请求中得到的响应。

Optional(<NSHTTPURLResponse: 0x14f734f10> { URL: https://moodle.ucl.ac.uk/ } { status code: 200, headers { 
"Accept-Ranges" = none; 
"Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0, no-transform"; 
Connection = close; 
"Content-Language" = en; 
"Content-Script-Type" = "text/javascript"; 
"Content-Style-Type" = "text/css"; 
"Content-Type" = "text/html; charset=utf-8"; 
Date = "Wed, 02 Dec 2015 14:35:47 GMT"; 
Expires = "Mon, 20 Aug 1969 09:23:00 GMT"; 
"Last-Modified" = "Wed, 02 Dec 2015 14:35:47 GMT"; 
Pragma = "no-cache"; 
Server = "Apache/2.2.15 (Red Hat)"; 
"Set-Cookie" = "MoodleSessionuclmoodle2=pn5n2akomeen3qgkjdel5fspv2; path=/; secure"; 
"Transfer-Encoding" = Identity; 
"X-Frame-Options" = sameorigin; 
"X-UA-Compatible" = "IE=edge"; 

回答

3

您可以使用NSDefaultUser或Keychain来存储用户登录,并且一旦他们轻敲,只需删除密钥。现在

NSUserDefault

,如果你想保持你的数据,只要安装该应用程式住这方法不错,一旦应用程序被删除,这将自动复位。你也可以选择更新密钥的值,如果你愿意,这里是你如何做NSUserDefault:

我总是喜欢注册我的NSUserDeafult到默认设置,很多人只是继续第二步而不注册。

注册NSUserDefault在AppDelgate.swift

NSUserDefaults.standardUserDefaults().registerDefaults(["valueName": AnyObject]) 

设定值您NSUserDefault,这取决于你要存储什么类型的数据,应与您注册一个,如果你没有寄存器。 (布尔数据的例子在下面键入)

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "valueName") //Bool Data Type 

确保您同步,一旦你的值设置为NSUserDefault,这样一来就会即时更新,否则当它得到一个机会,它会更新。

NSUserDefaults.standardUserDefaults().synchronize() 

获得价值:因为我们设定布尔和注册布尔这将收到布尔值。

let Variable: Bool! = NSUserDefaults.standardUserDefaults().boolForKey("valueName") 

Keychain 谢尔盖Kargopolov将引导您如何使用第三方使用快捷钥匙串。否则,你甚至可以采取harder challenge并自己创建一个。


请问你可能有什么问题。 :)

+0

谢谢先生!我会试一试。 – Afrim