手機端和網頁端使用同一後臺時進行會話控制的一種思路

文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/數據庫

1.背景

Web端的一次成功的登錄請求後,cookie中會保存這次回話的sessionID,再點擊其餘頁面時,會將此sessionID傳遞給後臺,後臺讀取對應的session來進行相應邏輯行爲;也就是說:session本質上仍是要基於cookie的。可是,免費手機網關,不支持cookie傳輸,因而在手機端的權限驗證中,並不能簡單的在後臺用request.getSession()就獲得該手機應用統一的session。解決這個問題,能夠在手機應用每一次登錄時,產生該用戶的一個token(相似於sessionID),手機應用再次發送請求時帶上該token便可。安全

2.具體思路

當手機端和網頁端使用同一個後臺時,在filter中,能夠先判斷是否有token傳入,若是有則斷定爲手機請求,經過該token來進行邏輯 判斷。若是沒有token傳入,則進行正常的session判斷。服務器

3.開發步驟

針對於手機訪問來具體描述微信

3.1token表設計

 token信息在數據庫表中單獨存儲,與humanID一一對應。cookie

                      

3.2token的使用。

3.2.1登錄服務器

手機端人員在登陸系統時,須要傳用戶名和密碼過來進行驗證。驗證經過以後,先刪除token表中該人員舊的token信息,同時在token表中新增一條該人員的token記錄,並返回到客戶端。session

3.2.2後臺訪問

手機端在向服務器發送請求的時候,每一個請求後面都須要帶上token信息做爲傳入參數。後臺會在Filter中先對token信息進行過濾。若是傳入的token在token表中不存在,則直接返回到客戶端,提示token已過時,請從新登陸。若是token驗證經過,則正常的訪問後臺接口。加密

3.2.3多終端訪問

手機多終端的訪問規則與微信相似,即在另外一個終端登陸後,當前終端自動登出,保證每次只能有一個終端處於鏈接狀態,每次登陸都會刷新token。設計

3.2.4登出

終端人員主動登出時,從token表中移除該人員的token信息。blog

4.注意

爲了安全,該token不能使用明文,可使用對稱加密等方法。token

 

                                                                                 ——歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

相關文章
相關標籤/搜索