基於EasyNVR攝像機無插件直播流媒體服務器實現相似於單點登陸功能的免登陸直播功能

提出問題

EasyNVR是一套攝像機無插件直播的流媒體服務器軟件,他能夠接入各類各樣的攝像機,再通過轉化統一輸出無插件化直播的RTMP、HLS、HTTP-FLV流,同時,EasyNVR爲了數據安全,提供了鑑權功能,能夠配置成只有登陸後才能直播觀看:
EasyNVR鑑權html

但這個時候問題又來了,不少企業用戶的需求是簡單觀看須要,數據安全也須要,簡易開發更須要,這個時候就須要一套相似於單點登陸這種簡易登陸鑑權模式,讓基本的安全和功能都獲得保障,因而,咱們有EasyNVR的企業用戶就提出了建議:web

一、流媒體訪問規範
Html方式,支持Chrome,IE等主流瀏覽器。
二、提供單通道觀看
提供單通道無控件WEB視頻訪問頁面,傳遞參數爲攝像頭ID
http://IP:33360/video/view.html?cameraid=xxx&token=xxx
三、提供全市全部視頻的訪問列表頁面
http://IP:33360/video/index.html?token=xxx
四、提供對省級管理平臺後臺單點登陸
在省級平臺訪問時,不須要再次登陸。經過token值判斷登陸狀況,token爲EasyNVR"用戶名+密碼"進行加密完成,當token匹配直接經過系統權限驗證。瀏覽器

分析問題

咱們大概捋了一下上述的需求,基本主旨是基於EasyNVR輸出的能力接口進行二次開發,屏蔽點擊登陸這一步,那麼如何作到這一步呢,實際能夠採用隱式登陸的方式,舉例:安全

  • 第一步:好比EasyNVR的登陸用戶名密碼分別是admin/admin,那麼咱們將「admin:admin」進行base64 encode編碼成爲:「YWRtaW46YWRtaW4」,那麼這個編碼後的字符串即爲此次咱們須要用到的token;
  • 第二步:自定義view.html頁面(或者直接改造EasyNVR的play.html頁面),當用戶訪問http://IP:33360/video/view.html?cameraid=xxx&token=YWRtaW46YWRtaW4 時,咱們將QueryString中的token首先進行base64 decode解碼成「用戶名:密碼」的組合"admin:admin";
  • 第三步:在自定義view.html頁面中開始調用EasyNVR能力接口,一旦EasyNVR返回401未鑑權的錯誤碼時,當即使用第二步base64解碼出來的用戶名:密碼調用login接口進行登陸,成功後,再繼續根據cameraid進行直播、錄像回放、雲臺控制等其餘能力的調用;
  • 第四步:同理,在列表頁面「http://IP:33360/video/index.html?token=xxx」 也採用一樣的流程方式;

按照以上的幾個步驟,實際就是在EasyNVR的外面,再包了一層殼,讓後續的開發者能用更加更簡單的方式就能夠參考和集成了;服務器

上述步驟咱們採用對用戶名密碼以base64編碼的方式進行傳輸,可能安全性較低,用戶很簡單就能夠獲取到密碼原文,咱們也能夠將「用戶名:密碼」的原始組合,換成「用戶名:md5(密碼)」的方式,這樣密碼原文就不會被抓取到了,view.html頁面在作鑑權的時候,就省去密碼md5這一步,直接調用login接口便可;網絡

問題擴展

第三方登陸:按照上述的token傳值方式,實際EasyNVR還能夠作相似於微博登陸、QQ登陸這種authToken第三方登陸的功能,固然這個就複雜了,後續EasyNVR也會推出的;ide

單點登陸:當同一個企業須要管轄的EasyNVR設備比較多的時候,若是每個EasyNVR現場的密碼都要單獨再記錄一次,就會顯得比較麻煩,若是有一個superadmin超級管理員,超級管理員登陸後,就不須要再一一登陸各個EasyNVR了,這種方式後面會在咱們的EasyNVS管理平臺帶上,屏蔽各類下級的密碼,直接超級權限單點登陸,便可調用全局能力;svg

關於EasyNVR

EasyNVR可以經過簡單的網絡攝像機通道配置,將傳統監控行業裏面的高清網絡攝像機IP Camera、NVR等具備RTSP協議輸出的設備接入到EasyNVR,EasyNVR可以將這些視頻源的音視頻數據進行拉取,轉換爲RTMP/HLS,進行全平臺終端H5直播(Web、Android、iOS),而且EasyNVR可以將視頻源的直播數據對接到第三方CDN網絡,實現互聯網級別的直播分發;編碼

詳細說明:http://www.easynvr.com加密

點擊連接加入羣【EasyNVR解決方案】:383501345

Copyright © EasyDarwin Team 2012-2018
EasyNVR公衆號

相關文章
相關標籤/搜索