redis儲存使用者登入資訊

Iwanna發表於2020-10-22
  1. 登入

    1. 使用者輸入賬號密碼,點選登入
    2. 後臺查資料庫,驗證使用者資訊
    3. 儲存session(預設快取過期時間為3天)
      1. sessionId = md5(userId + assistant +時間戳 + salt),
      2. 將使用者資訊儲存到key為sessionId的hash中
      3. 使用者資訊裡面包含
        {
         id:1,
         name: 'wanna',
         username: 'admin@medlinker.net',
         userId: 9999,
         imSession: 'SAJSKJNCUCABI',
         assistant_user: {
             id: 3,
             role: 2,
             name: 'wanna'
         }
        }
    4. 將imSession 這塊之前有邏輯了的,就簡單儲存就好
    5. 返回
      {
      "errcode": 0,
      "errmsg": "success",
      "data": {
       "session": "panel_assistant_session_1",
       "imSession": "panel_assistant_imSession_1"
      }
      }
  2. 使用者請求
    在header裡面帶上Authorization: panel_assistant_session_1
    所有請求過AssistantAuthenticate中介軟體
    中介軟體獲取到session後,去redis檢視是否有該快取來判斷使用者是否登入

    這裡只判斷panel的session

  3. 退出
    通過header裡的Authorization找到panel快取,通過panel的user資訊找到imSession,先刪除im的快取,在刪除panel的快取

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章