2011-08-08 76 views
3

我正在創建一個iphone應用程序,用戶登錄一次(當他們第一次打開應用程序時),然後再也不必再次登錄(比如instagram如何操作)。該應用會在下次打開時自動登錄。但是,該應用程序向Web服務器發出一堆請求。會話管理和一次性用戶登錄 - iphone

服務器發出會話令牌的最佳方式是什麼?會話令牌應該有效多久?我如何確保用戶永遠不必再次登錄,同時仍然提供安全的會話令牌。

一種方法是讓服務器在用戶第一次登錄時向用戶發放令牌,並使該令牌永久。但是,這似乎並不安全。

感謝您的幫助!

回答

1

服務器發出會話令牌的最佳方式是什麼?

一種方法是使用OAuth。它比餅乾更復雜,但它有更多的功能。
令牌被授予每個應用程序,並且可以由用戶從服務器中的頁面撤銷。此令牌可以是永久或臨時的。您可以將它作爲純文本或iPhone Keychain內部進行存儲,具體取決於您所需的安全級別。有用於服務器和客戶端實現的開放式免費代碼。另一個好處是客戶可以使用他們的Twitter/Facebook/...帳戶登錄您的服務,因此他們不需要在您的網站上註冊。

+0

謝謝,但我寧願使用我自己的身份驗證系統,不需要我運行我自己的OAuth服務器 –

3

那麼,通常該會話已通過會話cookie處理。除非你打算讓第三方連接到你的服務,否則我認爲除了基本的http認證之外,做任何事情都有點矯枉過正。但是我肯定會通過https連接發送所有連接請求。

只要在iPhone端持續保持會話,您可以將用戶和密碼保存在鑰匙串中,然後在需要您重新登錄時自動檢索併發送到服務器,而不必提示用戶再次登錄。您希望會話在服務器端的持續時間取決於您。