欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网络穿透/动态组网/视频上云网关EasyNTS组网平台输入账号和密码无法登陆,如何解决

程序员文章站 2022-07-06 22:29:49
...

EasyNTS作为视频上云网关,具备视频组网、远程运维等功能,上线前会经过研发部-测试部-项目部多重测试,在这个过程中不断完善产品。

网络穿透/动态组网/视频上云网关EasyNTS组网平台输入账号和密码无法登陆,如何解决

近期我们的开发人员测试EasyNTS的兼容性,发现当在相同的服务器下,如果同时部署了EasyNTS和EasyNVS,在同一浏览器去访问两个服务的web页面,这时假如先登录EasyNVS,就会导致EasyNTS无法登陆;假如直接进入EasyNTS,则会显示网络请求失败。

原因分析

原因是登录EasyNVS之后向Cookie中设置了token,EasyNTS在发送请求之后,拿到了EasyNVS的token进行验证,然而肯定是验证失败的,所以导致无法登录。

Cookie中的值:

网络穿透/动态组网/视频上云网关EasyNTS组网平台输入账号和密码无法登陆,如何解决

EasyNVS登录之后EasyNTS就报错:

网络穿透/动态组网/视频上云网关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组网平台输入账号和密码无法登陆,如何解决

更多关于EasyNTS云组网

  • 稳定可靠
    强大的服务器群支持组网环境,多类型服务器可供选择,高性能,高可用;
  • 简单易用
    基于动态组网服务创建智能网络,按需选择需要组网的网络成员实现点点互联;
  • 数据安全
    采用MQTT加密协议,具有运算速度快,安全性高,资源损耗低的优势;
  • 高效管理
    通过网页集中管理每个网点,彻底解决部署复杂,维护低效的问题。

如想详细了解,可进入TSINGSEE青犀视频进行浏览查阅。TSINGSEE青犀视频团队专注于计算机视觉、模式识别领域的开发与研究, 主力产品涵盖支持ONVIF、RTSP、GB/T28181等多协议、多路数的智能分析服务器。主要产品包括EasyGBS国标视频云服务、EasyDSS互联网视频云服务、EasyCVR安防视频云服务、EasyRTC视频会议云服务、EasyNVR视频边缘计算网关、EasyNTS上云网关等等,同时还拥有EasyDarwin开源社区及开放平台。

EasyDarwin是国内视频流媒体团队TSINGSEE青犀视频开发和维护的开源社区。从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目。