php - 佇列非同步執行的時候是無法使用SESSION的,那麼登入還能使用佇列嗎?
怪我咯
怪我咯 2017-05-16 13:05:36
0
1
346

佇列非同步執行的時候是無法使用SESSION的,那麼登入還能使用佇列嗎?如果能如何處理cookie和session的對應關係?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
刘奇

錄還能使用隊列嗎?

登入通常是個同步過程,用佇列不是不行,只是會增加複雜性。

同步的登入過程就是讀取資料庫,判斷帳號密碼正確,設定session,能在一個HTTP請求裡搞完。

換成異步,我只能想到下面這種方法:

  1. 客戶端產生隨機token

  2. 客戶端把token、帳號、密碼寄給伺服器

  3. 伺服器在redis中記錄這個token還沒登入成功

  4. 伺服器把把token、帳號、密碼放到佇列處理

  5. 隊列處理,如果帳號正確,redis中的token標記為成功,否則標記為失敗

  6. 客戶端在伺服器和佇列處理的過程中一直用另一個介面輪詢看token是否登入成功,成功的話以後的請求都帶上token,否則客戶端登入失敗。

所以應該盡快完成同步的登入過程,把登入後需要的一些操作(發郵件通知等等)放隊列,而不是把整個登入過程放隊列。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板