EasyNTS作為視頻上云網關,具備視頻組網、遠程運維等功能,上線前會經過研發部-測驗部-專案部多重測驗,在這個程序中不斷完善產品,

近期我們的開發人員測驗EasyNTS的兼容性,發現當在相同的服務器下,如果同時部署了EasyNTS和EasyNVS,在同一瀏覽器去訪問兩個服務的web頁面,這時假如先登錄EasyNVS,就會導致EasyNTS無法登陸;假如直接進入EasyNTS,則會顯示網路請求失敗,
原因分析
原因是登錄EasyNVS之后向Cookie中設定了token,EasyNTS在發送請求之后,拿到了EasyNVS的token進行驗證,然而肯定是驗證失敗的,所以導致無法登錄,
Cookie中的值:

EasyNVS登錄之后EasyNTS就報錯:

解決問題
一開始驗證用戶是否登陸,是首先通過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("未查找到令牌資訊,請重新登錄!")
}
解決之后就可以正常使用,正常登錄:

更多關于EasyNTS云組網
- 穩定可靠
強大的服務器群支持組網環境,多型別服務器可供選擇,高性能,高可用; - 簡單易用
基于動態組網服務創建智能網路,按需選擇需要組網的網路成員實作點點互聯; - 資料安全
采用MQTT加密協議,具有運算速度快,安全性高,資源損耗低的優勢; - 高效管理
通過網頁集中管理每個網點,徹底解區域署復雜,維護低效的問題,
如想詳細了解,可進入TSINGSEE青犀視頻進行瀏覽查閱,TSINGSEE青犀視頻團隊專注于計算機視覺、模式識別領域的開發與研究, 主力產品涵蓋支持ONVIF、RTSP、GB/T28181等多協議、多路數的智能分析服務器,主要產品包括EasyGBS國標視頻云服務、EasyDSS互聯網視頻云服務、EasyCVR安防視頻云服務、EasyRTC視頻會議云服務、EasyNVR視頻邊緣計算網關、EasyNTS上云網關等等,同時還擁有EasyDarwin開源社區及開放平臺,
EasyDarwin是國內視頻流媒體團隊TSINGSEE青犀視頻開發和維護的開源社區,從2012年12月創建并發展至今,從原有的單服務的流媒體服務器形式,擴展成現在的云平臺架構的開源專案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/121290.html
標籤:其他
