2016-10-13 117 views
0

我正在使用Facebook登錄作爲我的PhoneGap應用程序的身份驗證 - 一旦用戶登錄,他們的數據將從我的數據庫中檢索以顯示信息。我沒有將SDK用於任何其他目的。Facebook Javascript SDK自動登錄和Tokens

我有Facebook自動登錄工作正常 - 它檢索authResponse和我的Facebook信息。由於訪問令牌隨着每次登錄而改變,我可以使用什麼來存儲本地和我的數據庫,以便對我的服務器上的用戶進行身份驗證以便將來登錄?

這裏是我想可以工作...

  1. 用戶看到日誌在屏幕上,並進入Facebook的憑證流
  2. Facebook的安全驗證,並返回用戶信息&訪問令牌
  3. 的應用程序使用localStorage存儲用戶電子郵件和訪問令牌
  4. 對於未來的自動登錄,localStorage值用作電子郵件/密碼

但是,我覺得這不可能是正確的答案。

+0

是的,localStorage不應該用於保存敏感信息,如密碼和客戶數據 –

+0

@MandeepSingh我同意 - 你有什麼建議? – isometrixk

+0

訪問令牌只有幾個小時有效 – WizKid

回答

0

我想出了一個解決方案 - 我對將密碼存儲在數據庫中以獲取用戶信息感到困惑。相反,這些都是正確的步驟:

  1. 使用Facebook SDK與臨時訪問令牌處理登錄和檢索authResponse
  2. 更新用戶表在我的數據庫和檢索用戶的信息
  3. 對於每一個崗位或GET用戶希望執行的操作,我將匹配來自數據庫的訪問令牌的FB.getLoginStatus()結果(該檢查將在服務器端完成)
  4. 如果令牌匹配,請執行請求。否則,強制用戶再次登錄。
+0

但令牌只存在幾個小時,你再次擊中新令牌 –

+0

正確 - 反覆打開應用程序將創建新的令牌,並且應用程序工作正常,無需強制登錄時間。 – isometrixk