存储OAuth令牌iOS的最佳方式?

时间:2014-02-07 16:20:35

标签: ios oauth-2.0

我正在编写一个使用Twitch.tv's API的iOS应用,以允许我的应用访问其用户内容。他们使用OAuth 2.0协议进行身份验证。每次我发出访问用户信息的请求时,我都需要使用此访问令牌。

我的问题是我应该在哪里存储它?

我应该创建一个将它作为属性的类吗?在该课程中,我还可以存储我的重定向URI和Client_ID,以便将事物保存在一个地方。

我想过NSUserDefaults,但我读到它并不是很安全。

iOS上这种方法的最佳设计模式是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

你的问题措辞的方式你似乎混淆使用单词商店来表示两个完全不同的东西。如果您使用NSUSerDefaults,则令牌将存储到文件中,并且如果应用程序被终止将继续存在。如果你将它作为类的属性,它将暂时存储在内存中,并且如果应用程序被终止则不会持久存在。因此,您的问题是我应该使用苹果还是橘子。

如果您需要持久存储敏感数据,那么您不应该使用NSUserDefaults,而是使用iOS密钥链。使用钥匙串有点太冗长,无法在此处描述。 钥匙串是加密的,但只使用用户的4位密码,这可能是强行破解的。所以你也可能加密它。