2009-12-07 71 views
1

嗨,我即將創建一個iPhone應用程序,將有一個帳戶系統。 (登錄/註銷)。如何在iPhone上創建和維護身份驗證會話?

這也將有一個服務器端。那麼如何做會話管理。而你的客戶是iphone

我該怎麼做?

+0

這是一個針對iPhone優化的Web應用程序,還是將在商店中使用的Cocoa應用程序?如果它是一個Web應用程序,您的Web應用程序框架選擇的身份驗證應該「只是工作。」 – 2009-12-07 04:34:11

+0

這是一個可可應用程序,將在應用程序商店。它將有一個服務器端。我想要管理會話就是這樣 – 2009-12-07 04:35:19

回答

1

我使用ASIHTTPRequest庫與我的web服務進行通信。

它具有處理cookie的內置功能,所以我只需使用POST請求登錄並將cookie設置爲正常瀏覽器。

當您的網絡連接是下來,你仍然可以檢查一個有效的cookie:

- (BOOL) hasSignInCookie 
{ 
    NSArray *cookieJar = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; 
    for(NSHTTPCookie *cookie in cookieJar) 
    { 
     if([[cookie name] compare: @"JourneyTagID"] == NSOrderedSame) 
     { 
      return YES; 
     } 
    } 
    return NO; 
} 
0

如果它是一個Web應用程序,或者您的服務器端將是一個Web服務,你可能想使用HTTP cookies

否則,您可以想出一些自定義方案,您可以將會話ID分配給客戶端,並將其與服務器端的狀態相關聯。客戶端在未來的請求中提供此會話ID。

這裏要考慮的事情包括持久性/過期,服務器端和客戶端。此外,安全性(是你的方案容易受到暴力或預測攻擊?如果你被加密,其中該分配通信/提供?)

關於iPhone,你可能想使你的會話ID針對特定的UDID (獨特的硬件地址)。