使用OAuth时保留登录信息

时间:2011-12-17 22:33:19

标签: ios architecture twitter oauth security

我开始构建一个iOS应用程序,它将使用Twitter作为验证和识别用户的手段。我理解OAuth提供的代客密钥/访问令牌的想法,但我不理解我应该用于状态保留的架构,即我需要为应用程序的功能存储其他用户特定信息,但是,我应该如何设计用户验证此信息。

因此,如果用户登录设备上的应用程序,是否应该对该设备进行身份验证,然后将令牌传输到我的服务器?将这些令牌存储在我的数据库中供以后使用是否可以接受?

另外,我该如何以安全的方式处理这些信息?

任何详细说明如何处理应用程序架构的帖子/讲座都会非常有用。

1 个答案:

答案 0 :(得分:0)

  1. 始终避免将令牌等信息发送到服务器。除非必须,否则不要这样做。如果这样做,请始终使用安全(HTTPS)连接进行传输。虽然令牌本身是无用的,但它们可以与存储在应用程序代码中的令牌(消费者令牌)结合使用,这使得黑客几乎可以完全控制用户的帐户。
  2. 如果您不将它们传输到服务器,请使用iOS Keychain存储令牌。
  3. 没有Twitter API规则说你不能存储令牌,但有一个说“不要让用户感到惊讶”。基本上这意味着您无法从服务器发送推文,因为用户可能没想到。如果您正在为用户进行数据分析,那么它可能很好,但请将其保持为只读状态,并在分析完成后通过推送通知通知用户。同样,不会做任何用户可能没想到的事情。

    在缓存用户信息时:如果我们只谈论屏幕名称或全名,这些确实不会经常更改。在缓存中将这些存储24小时是安全的。当然,不要长时间存储时间表。有时你可能不得不妥协一下 - 当用户想要节省电池和网络使用时,你可能想要实时数据。

    更新:用户最欣赏的是您只需使用内置的Twitter功能,这意味着他们只需点击确定即可。没有主要的OAuth程序,您自己也无法控制令牌(用户会喜欢)。