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


文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處: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一一對應。

                      

3.2token的使用。

3.2.1登陸服務器

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

3.2.2后台訪問

手機端在向服務器發送請求的時候,每個請求后面都需要帶上token信息作為傳入參數。后台會在Filter中先對token信息進行過濾。如果傳入的token在token表中不存在,則直接返回到客戶端,提示token已過期,請重新登錄。如果token驗證通過,則正常的訪問后台接口。

3.2.3多終端訪問

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

3.2.4登出

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

4.注意

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM