上一篇我们讲了TSINGSEE青犀视频为EasyDSS平台开发的EasyNVS管理平台是如何实现EasyDSS的接入。本文我们分享下EasyNVS在实现代理时调用EasyDSS接口,如何携带token。

通过EasyNVS去管理EasyDSS,首先是通过代理的方式请求EasyDSS的接口,可是一旦EasyDSS中开启了接口鉴权,每一次请求都需要验证是否登陆。那么此时就需要将token信息携带。

既然需要登录,那么就在代码中请求登录的接口,然后将token信息写入代理请求中,这样就可以实现权限的验证了。

具体实现方式就是在代码中通过登录请求返回的数据,获取cookie的数据信息,遍历这个数据信息,将这个数据值塞入到代理的请求中。参考代码如下:

if frpc.Token == "" || time.Since(frpc.TokenTime).Seconds() > float64(conf2.GetConf().SysTokenTimeout) {
   if err := frpc.RefreshToken(); err != nil {
      log.Println(err)
   }
}
httpPort := utils.Conf().Section("http").Key("http_port").MustInt(10080)
director := func(req *http.Request) {
   req.URL.Scheme = "http"
   req.URL.Host = fmt.Sprintf("127.0.0.1:%d", httpPort)
   req.URL.Path = "/live/list"

   req.Header.Del("Cookie")
   req.AddCookie(&http.Cookie{
      Name:  consts.SessionSID,
      Value: frpc.Token,
   })
}

目前EasyDSS视频平台已经支持H.265编码的播放,更好适应了现代视频播放和存储的需要。此外,EasyDSS还支持定制其他功能或者版本,如果有需求,欢迎联系我们了解,EasyDSS提供测试版本,欢迎大家下载测试。

posted on 2021-03-04 17:57  EasyDSS  阅读(43)  评论(0编辑  收藏  举报