2012-02-08 16 views
2

我們正在構建一個需要Facebook註冊的iPhone應用程序。我們想在用戶創建一個賬戶後做兩件事,然後退出我們的應用程序。我們在四個主要假設的約束下工作。在單個設備上爲多個用戶自動化Facebook重新授權

A.用戶(S)已經簽約和他們的FB令牌(S)存儲在設備

上B.有可能是從一個單一的設備簽約或登錄多個用戶。在這種情況下,可以存儲多個令牌。

C.沒有用戶登錄到我們的應用程序目前

D.目前還不清楚哪些用戶登錄到此時

有了這些假設Facebook的應用程序,我們有兩個問題:

  1. 我們如何將正確的存儲令牌與當前在設備上登錄Facebook的人進行匹配?

  2. 我們如何在返回應用程序之前跳過提示「您已經授權...」,需要「okay」?

代碼示例將非常感謝。

+0

鑑於{C.},這似乎幾乎不可能。如果用戶登錄到您的應用程序並已批准該應用程序,則可能只需將oauth標記內部存儲在與系統上的用戶綁定的數據庫中。但是,如果用戶是匿名的,並且您有多個令牌與多個用戶相關聯,我不相信有一種方法可以推斷出沒有潛在安全風險的正確標記{key = user_name,value = assoc_oauth_token} ...也許我是隻是誤解了這個問題。 – 2012-02-17 15:16:29

回答

0

因此,如果我理解正確,你只是想在你的單一設備上實現多Facebook用戶,並且無需重新驗證就可以在它們之間進行交換?

以下是具體步驟,我認爲你可以遵循這樣做:

  1. 用戶跡象
  2. 店中的profile_pic + Facebook的UID +的access_token +名在某種持久化存儲,你可以簡單地店這NSUserDefaults但有辦法使用更安全鑰匙扣儲存的access_token here
  3. 設置這組鍵/值對作爲「主動」
  4. 當用戶登錄時,該應用實際上並沒有用戶退出的Faceboo k,但只需清除活動鍵/值對
  5. 通過讀回您存儲的值(名稱+個人資料圖片)來呈現已登錄的用戶
  6. 用戶輕擊一個配置文件,將其設置爲活動或認證新個人資料並重復步驟

重要提示:你現在因爲傳統上有可能得到一個永不過期的訪問令牌與offline_access許可要非常小心。但starting July 2012,這是不贊成和令牌到期。因此,您每次選擇用戶配置文件時都需要extend the token