天天看點

EasyNVR接口鑒權執行個體講解

1.背景需求

  • EasyNVR考慮到使用者的使用安全性,軟體自帶接口鑒權和視訊流播放鑒權,在使用EasyNVR不進行二次開發的情況下,是完全能滿足使用者安全性能的需求,但是如果使用者進行二次開發調取接口,那就要調取接口自己來實作鑒權功能。但是該如何合理的使用呢?

1.取消軟體鑒權機制

1.把軟體包下easynvr.ini檔案内的 api_auth改成等于0

EasyNVR接口鑒權執行個體講解

2.和軟體界面下基礎配置取消直播頁面鑒權

EasyNVR接口鑒權執行個體講解

這兩個修改之後再調取軟體服務的任何接口都不需要鑒權了。(注:如果考慮到安全問題,可以不考慮第一種。)

2.調取接口實作鑒權

  • 使用到的接口

登入接口需要帶上兩個參數,使用者名和密碼,密碼需要經過MD5加密。

例:http://127.0.0.1:10800/api/v1/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e

EasyNVR接口鑒權執行個體講解

登出接口

例:http://127.0.0.1:10800/api/v1/logout

EasyNVR接口鑒權執行個體講解

測試接口使用的是擷取通道資訊接口,需要帶上兩必帶參數

例:http://127.0.0.1:10800/api/v1/getchannels?start=0&limit=2

EasyNVR接口鑒權執行個體講解
建立一個 index.html demo
  • index.html内容檔案如下
<!DOCTYPE HTML>
<html>
    <head>
        <title>EasyNVR</title>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    </head>
    <body>     
        <button id="btn1">登入</button>
        <button id="btn2">退出</button>
        <button id="btn3">測試鑒權</button>
        <p id="data"></p>
</body>
        <!-- 引入jquery插件 -->
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
        <!-- 引入md5加密插件 -->
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>
    <script>
        //定義變量來存放軟體服務的IP和端口
        var httpStr = "http://127.0.0.1:10800"
        $(document).ready(function(){
            var userName = 'admin',             //使用者名
                passWord = 'admin'              //原始密碼
                passWordHash = md5(passWord);   //加密後密碼
                
            //當點選登入會向服務端發送登入請求
            $("#btn1").click(function(){
                //請求登入接口帶上使用者名和加密後的密碼
                $.get(httpStr + "/api/v1/login?username="+userName+"&password="+passWordHash,function(data,status){
                    if(data.EasyDarwin.Header.ErrorNum === "200"){
                        $("#data").text('鑒權成功!服務端傳回的token為:'+data.EasyDarwin.Body.Token + " 過期時間為:"+data.EasyDarwin.Body.TokenTimeout)
                    }else {
                        $("#data").text('鑒權失敗!狀态碼為:'+data.EasyDarwin.Header.ErrorNum)
                    }
                });
            });
            //當點選退出會向服務端發送登入請求
            $("#btn2").click(function(){
                $.get(httpStr + "/api/v1/logout",function(data,status){
                    if(data.EasyDarwin.Header.ErrorNum === "200"){
                        $("#data").text('退出成功!')
                    }
                });
            });
            //當登入成功後點選測試按鈕是否鑒權成功
            $("#btn3").click(function(){
                $.get(httpStr + "/api/v1/getchannels",function(data,status){
                    if(data.EasyDarwin.Header.ErrorNum === "200"){
                        $("#data").text("通道名稱:"+data.EasyDarwin.Body.Channels[0].Name)
                    }else{
                        $("#data").text('鑒權失敗'+data)
                    }
                });
            });

        });
    </script>
</html>
           
  • 接口鑒權隻要用戶端調取接口成功,服務端會主動把登入資訊注冊到用戶端。不需要手動帶上登入成功後傳回的資訊

案例gitee位址:[https://github.com/EasyNVR/EasyNVR/tree/master/EasyNVR_apidemo/apidemo]

關于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-2019

EasyNVR接口鑒權執行個體講解

繼續閱讀