2011-08-08 39 views
3

我正在创建一个iphone应用程序,用户登录一次(当他们第一次打开应用程序时),然后再也不必再次登录(比如instagram如何操作)。该应用会在下次打开时自动登录。但是,该应用程序向Web服务器发出一堆请求。会话管理和一次性用户登录 - iphone

服务器发出会话令牌的最佳方式是什么?会话令牌应该有效多久?我如何确保用户永远不必再次登录,同时仍然提供安全的会话令牌。

一种方法是让服务器在用户第一次登录时向用户发放令牌,并使该令牌永久。但是,这似乎并不安全。

感谢您的帮助!

回答

1

服务器发出会话令牌的最佳方式是什么?

一种方法是使用OAuth。它比饼干更复杂,但它有更多的功能。
令牌被授予每个应用程序,并且可以由用户从服务器中的页面撤销。此令牌可以是永久或临时的。您可以将它作为纯文本或iPhone Keychain内部进行存储,具体取决于您所需的安全级别。有用于服务器和客户端实现的开放式免费代码。另一个好处是客户可以使用他们的Twitter/Facebook/...帐户登录您的服务,因此他们不需要在您的网站上注册。

+0

谢谢,但我宁愿使用我自己的身份验证系统,不需要我运行我自己的OAuth服务器 –

3

那么,通常该会话已通过会话cookie处理。除非你打算让第三方连接到你的服务,否则我认为除了基本的http认证之外,做任何事情都有点矫枉过正。但是我肯定会通过https连接发送所有连接请求。

只要在iPhone端持续保持会话,您可以将用户和密码保存在钥匙串中,然后在需要您重新登录时自动检索并发送到服务器,而不必提示用户再次登录。您希望会话在服务器端的持续时间取决于您。