2013-02-25 35 views
0

我正在開發一個使用php webservices的android應用程序。我一直在處理服務器端和客戶端之間的會話問題,所以我決定採取不同的方法。我打算創建一個包含session_id,user_id,session_token和expiry_date的user_session表。創建用於認證的user_session表。

session_token將使用用戶的一些字段生成,而expiry_date是session_token重新生成或更改爲null時的日期。這將意味着用戶需要在android上重新登錄。

場景: 1.用戶輸入正確的憑證 2. Web服務爲用戶生成session_token,將其存儲在user_session表中並將值發送給客戶端。 3.對於來自android應用程序的每個請求,Web服務將驗證客戶端的session_token是否與表中的session_token相對應。

我的問題: 1.你可以幫我創建session_token和expiry_date,因爲我不知道如何在PHP中使用其他字段生成一個唯一的值。 2.它在安全性方面值得嗎?

謝謝您的幫助

回答

0

您可以使用hasing:

$token = sha1($ssid.$something); 

$ssid = session_id(); 

這$令牌變量是你的令牌。在數據庫中插入,然後創造條件。它是唯一的,它是基於會話ID和其他「思考」你可以使用電子郵件地址或其他領域......但要小心,如果用戶更改該字段,則需要再次生成令牌