2017-03-04 109 views
0

我想知道如何從應用程序發出任何請求時從服務器識別用戶。就像我登錄到應用程序並希望更新我的配置文件並將請求發送到服務器一樣。服務器如何識別來自特定用戶的請求?我使用PHP作爲服務器語言並使用Shared Preferences存儲用戶會話。如何從服務器識別處理請求的用戶

任何幫助將有所幫助。

+0

你應該有一個唯一的ID,你的服務器和應用程序都能理解,所以在這種情況下,我相信它是用戶ID,當你在數據庫中查詢時可以使用它,在提出服務器請求時包含這個用戶ID,它 – Roljhon

+0

我想到了這個選項。如果需要,用戶標識應該是唯一的並加密。但我想知道是否還有其他選擇?感謝您的回覆 – Nikhil

+0

應如何存儲用戶ID?使用共享首選項? – Nikhil

回答

1

完成這一結果的最簡單方法是爲用戶附加一個唯一標識符(隨機生成)。將此信息與用戶在數據庫中的時間,名稱和標識符一起存儲。也堅持在應用程序,共享首選項是沒問題的。但考慮使用數據庫。對於android來說,一個偉大的領域是。然後,當任何請求被髮送到服務器時,發送用戶的名字以及他們的標識符用這個信息執行查詢搜索。因此返回爲該用戶存儲的任何信息。

有意義嗎?那麼還有其他複雜的方法可以根據您的需求量身定製。共享偏好的概念是存儲小型瞬態信息。使用數據庫可以非常安全地控制數據和託管操作,這將在遇到流量時發揮重要作用。考慮網絡令牌以及溝通。 JSON Web Token(JWT)是一個開放式標準(RFC 7519),它定義了一種緊湊且自包含的方式,用於在各方之間以JSON對象安全傳輸信息。這些信息可以通過數字簽名進行驗證和信任。可以使用祕密(使用HMAC算法)或使用RSA的公鑰/私鑰對對JWT進行簽名。

+0

我想到了這種方法。但是想知道這種情況下的共享偏好是否安全? – Nikhil

+0

檢查已更新的答案。但是如果你的操作很簡單,那麼是的,共享首選項就是要走的路,因爲如果你想要保存的鍵值相對較少,可以使用它。 – Remario

+0

我可以將用戶標識保存爲共享首選項,並使用POST請求將數據和用戶標識一起發送到服務器? – Nikhil

0

成功登錄到應用程序後,在本地保存userId(在SQLite或SharedPreferences等中)。
現在每次來自服務器的用戶請求時,都將該userId添加到參數列表中。
在服務器端,首先檢查userId,如果它是null或者不存在於數據庫中,則回顯String錯誤消息,否則繼續。

相關問題