2012-07-26 95 views
2

請原諒我,但我已閱讀所有與此相關的主題,並且這位新手仍然感到困惑。讓我開始給出我想要實現的目標的簡短敘述... 我已經創建了一個測驗。由於我添加排行榜,因此我需要用戶創建用戶名和密碼或電子郵件地址,以便保持唯一性。我已經設法使用phpmysql創建註冊和登錄功能,並且它在我的應用程序中運行得非常好。 但是,我不希望用戶在每次打開應用程序時都必須登錄,而是記住用戶的詳細信息。 我是否在android sdk中使用帳戶管理器功能並刪除mysql?還是應該修改我已有的內容?我甚至需要使用phpmysql進行登錄嗎?我意識到我將不得不將它用於排行榜。 任何幫助指出我在正確的方向將不勝感激。Android應用程序的用戶身份驗證

乾杯

回答

3

我們的會話系統,類似於您如何使用cookie。

當Android設備連接,在PHP中:

  • 創建一個簡單的 「會話」 變量。
  • 在數據庫中記錄針對會話變量的手機標記
  • 將會話變量返回給android。

在Android中:

  • 店在手機上的本地數據文件中的會話變量。

對於後續的呼叫:

  • 的Android發送會話變量(從本地文件存儲)與手機ID,以PHP
  • PHP沿檢查會話變量是否有效,檢查手機簽名匹配。如果他們這樣做,你有同樣的會議。如果它們不匹配,請創建一個新的會話(併發送回電話)。

當用戶「登錄的」

  • 商店,他們已經登錄針對PHP的會話變量USER_ID和事實。
  • 然後,當從手機發送會話變量時,您知道沒有交互的user_id。
  • 如果用戶註銷,只是記錄在數據庫(取消鏈接從會話中USER_ID)

爲文件存儲的是的persisent,即使在應用程序關閉,手機ID不會改變,即使在應用程序關閉後,PHP也會始終知道用戶是誰連接的。

+0

感謝您的幫助。這總結了我需要做的事情......但怎麼做呢?對不起,但我對此完全陌生。我已經學習了教程以儘可能地獲得,所以如果你知道任何執行你的建議,我會很感激。 – user1556260 2012-07-27 01:27:08

+0

我無法專門回答。我寫的Android應用程序已經在Titanium/Appcellerator中,而不是在Java中,所以我不能給你一小段代碼。您可以在整個Web上找到適用於PHP的會話示例 - 但是,如果選擇「設置cookie」並使用$ _COOKIE,則將值(echo,可能爲JSON)返回給Android應用程序,並從參數中獲取會話ID。 – Robbie 2012-07-27 01:55:45

+0

無論如何。我可以查看PHP。但是如何記錄手機簽名?我不確定那是什麼意思。 – user1556260 2012-07-27 02:43:43

0

儘管Robbies的回答很好,但至少在短期內這聽起來像是對你的應用程序的一種矯枉過正。一個簡單的解決方案是保存一個布爾與共享偏好每個會話:

http://developer.android.com/guide/topics/data/data-storage.html#pref

共享偏好店變量中間人會話和簡單獲取。在你的情況下,如果登錄成功,你會保存一個布爾值true。下一次應用程序啓動時,獲取布爾值,如果爲true,則不需要登錄。如果沒有這樣的變量或者它被設置爲false(以前登錄失敗/用戶註銷),請求登錄!

祝你好運

+0

謝謝你們兩位。哈斯拉爾我會去讀一些關於共享偏好的教程! – user1556260 2012-07-27 03:24:05

+0

我連接的一個非常需要的要領:) – 2012-07-27 14:14:50