会话管理和一次性用户登录 - iphone

Posted

技术标签:

【中文标题】会话管理和一次性用户登录 - iphone【英文标题】:session management and one-time user login - iphone 【发布时间】:2011-10-22 19:10:39 【问题描述】:

我正在创建一个 iphone 应用程序,用户在其中登录一次(当他们第一次打开应用程序时),然后永远不必再次登录(就像 instagram 的做法一样)。该应用程序将在他们下次打开时自动登录。但是,该应用程序会向 Web 服务器发出一堆请求。

服务器颁发会话令牌的最佳方式是什么?会话令牌的有效期应该是多久?如何确保用户无需再次登录,同时仍提供安全会话令牌。

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

感谢您的帮助!

【问题讨论】:

【参考方案1】:

嗯,通常会话已经通过会话 cookie 处理。除非您打算让第三方连接到您的服务,否则我认为除了基本的 http 身份验证之外,做任何其他事情都有些矫枉过正。不过,我肯定会通过 https 连接发送您的所有连接请求。

至于在iPhone端持久化会话,可以将用户和密码保存在Keychain中,当需要重新登录时自动取回发送到服务器,无需提示用户重新登录。您希望会话在服务器端持续多久完全取决于您。

【讨论】:

【参考方案2】:

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

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

【讨论】:

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

以上是关于会话管理和一次性用户登录 - iphone的主要内容,如果未能解决你的问题,请参考以下文章

常用会话管理方式

如何通过无头 chrome 管理登录会话?

angularjs客户端和spring后端用户登录和会话管理

使用 Jersey 的 RESTful Web 服务的会话管理

如何在多个 apache 服务器上管理单个 PHP5 会话?

Spring Security用户手动登录会话由管理员创建,无需密码