網路穿透/動態組網/視訊上雲閘道器EasyNTS組網平臺輸入賬號和密碼無法登陸,如何解決

2020-09-24 14:00:40

EasyNTS作為視訊上雲閘道器,具備視訊組網、遠端運維等功能,上線前會經過研發部-測試部-專案部多重測試,在這個過程中不斷完善產品。

EasyNTS架構圖12.5D.png

近期我們的開發人員測試EasyNTS的相容性,發現當在相同的伺服器下,如果同時部署了EasyNTS和EasyNVS,在同一瀏覽器去存取兩個服務的web頁面,這時假如先登入EasyNVS,就會導致EasyNTS無法登陸;假如直接進入EasyNTS,則會顯示網路請求失敗。

原因分析

原因是登入EasyNVS之後向Cookie中設定了token,EasyNTS在傳送請求之後,拿到了EasyNVS的token進行驗證,然而肯定是驗證失敗的,所以導致無法登入。

Cookie中的值:

34.png

EasyNVS登入之後EasyNTS就報錯:

35.png

解決問題

一開始驗證使用者是否登陸,是首先通過token進行驗證的,但是EasyNTS並不是通過token,是通過sid作為鍵獲取對應的值來進行驗證的。所以將EasyNTS中的token驗證的程式碼給去除就可以了。

// 判斷使用者是否已經登入
func userIsLogin(c *gin.Context) (bool, error) {

   token := sessions.GetToken(c)

   // 如果查詢到了 token
   if token != consts.EmptyString {
      username, password, str := security.ResolveToken(token)
      if str == consts.EmptyString && username != consts.EmptyString && password != consts.EmptyString {
         // 從 session 中獲取使用者 ID 同 token 中解析,二次驗證防止出錯
         userID := sessions.GetUserID(c)
         if userID == username {
            return true, nil
         } else {
            return false, errors.New("Session資訊與令牌資訊不一致,請重新登入!")
         }
      } else {
         return false, errors.New("令牌已過期,請重新登入!")
      }
   }

   return false, errors.New("未查詢到令牌資訊,請重新登入!")
}

解決之後就可以正常使用,正常登入:

36.png

更多關於EasyNTS雲組網

  • 穩定可靠
    強大的伺服器群支援組網環境,多型別伺服器可供選擇,高效能,高可用;
  • 簡單易用
    基於動態組網服務建立智慧網路,按需選擇需要組網的網路成員實現點點互聯;
  • 資料安全
    採用MQTT加密協定,具有運算速度快,安全性高,資源損耗低的優勢;
  • 高效管理
    通過網頁集中管理每個網點,徹底解決部署複雜,維護低效的問題。

如想詳細瞭解,可進入TSINGSEE青犀視訊進行瀏覽查閱。TSINGSEE青犀視訊團隊專注於計算機視覺、圖形識別領域的開發與研究, 主力產品涵蓋支援ONVIF、RTSP、GB/T28181等多協定、多路數的智慧分析伺服器。主要產品包括EasyGBS國標視訊雲服務、EasyDSS網際網路視訊雲服務、EasyCVR安防視訊雲服務、EasyRTC視訊會議雲服務、EasyNVR視訊邊緣計算閘道器、EasyNTS上雲閘道器等等,同時還擁有EasyDarwin開源社群及開放平臺。

EasyDarwin是國內視訊串流媒體團隊TSINGSEE青犀視訊開發和維護的開源社群。從2012年12月建立並行展至今,從原有的單服務的串流媒體伺服器形式,擴充套件成現在的雲平臺架構的開源專案。