如何处理cookie以保持用户使用Swift登录?

时间:2015-12-02 14:38:35

标签: ios swift cookies

我是Swift的新手而不是非常先进。 我有WKWebView加载我学校的Moodle页面。我登录并在里面做东西,但在我杀了应用程序并再次启动它之后;它再次要求登录详细信息,而不是保持登录状态。

我试过了一个不同的网站(youtube),即使在我杀了应用程序之后它仍然让我登录。所以我假设它在网站cookie的工作方式

这是我从请求中得到的回复。

    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";

1 个答案:

答案 0 :(得分:3)

您可以使用NSDefaultUser或Keychain存储登录的用户,一旦他们点击,只需删除密钥。

NSUserDefault

现在,如果您希望在安装应用程序时保持数据生效,这种方法很好,一旦删除应用程序,这将自动重置。如果您愿意,您还可以选择更新密钥的值,以下是NSUserDefault的操作方法:

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

在AppDelgate.swift中注册NSUserDefault

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 Sergey Kargopolov将指导您如何使用第三方使用swift钥匙串。否则,您甚至可以自己创建一个harder challenge

请询问您的任何问题。 :)