所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

TE10, TE20 会议电视终端 V600R019C00 HTTP API 编程参考

为了方便用户在自定义操作界面上控制终端,终端提供了大量的API(Application Programming Interface)命令行接口,用户可以通过调用这些接口控制终端。
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
登录认证流程介绍

登录认证流程介绍

登录认证流程如图3-1所示。

图3-1 HTTP API登录认证流程
图3-2 请求SessionID返回示意及请求SessionID响应
图3-3 后期请求,携带Sessionid及CSRF Token示意

  1. API用户首先请求会话ID,HTTP Server判断当前终端状态是否允许建立新的会话(会话数是否已满、是否正在升级等)。如果允许建立新会话,则向前台响应会话ID,否则响应失败。请求和响应的报文和参数请参考3.1 函数接口;SessionID会放在响应头的Set-Cookie字段,如图2-2红色区域所示。注意:获取到sessionID后,需要将其放到后续每一个请求的HTTP报文头的cookie字段中,如图2-3红色区域所示,注意大小写。
  2. API用户在获取了会话ID后,进行用户认证请求。请求认证的参数格式是:
    { 
     "user":"XXXXX", 
     "password":"YYYYYY" 
     }
  3. HTTP Server收到认证请求后对用户名和密码进行校验,并返回校验结果。为防止CSRF跨站请求,在认证阶段会返回CSRF Token;后期所有的API请求都必须携带该CSRF Token,如图2-3所示;
  4. 认证完成后,应更换会话标识(SessionID),使用WEB_ChangeSessionIDAPI进行会话标识更换,与WEB_RequestSessionIDAPI类似,更换的SessionID会放在响应头的Set-Cookie字段;注意:后续会话请使用更换后的SessionID;
  5. HTTP Client端需要对校验结果进行判断,如果校验成功,则需要定时向HTTP Server发送持续连接请求WEB_GetMailboxDataAPI,维持认证状态。否则1分钟后将进入超时,需要重新认证。因此持续连接定时器必须小于1分钟,建议1~5s发送一次。
/* 示例请求认证流程,基于Ext2.3框架开发 */ 
 /* 第一步:请求会话ID */ 
 Ext.Ajax.request({ 
      url: 'action.cgi?ActionID=Web_RequestSessionIDAPI', 
      success: function(response){ 
          this.handleRequestSessionIDCallback(response); 
          /* 将获取到的seesionID存储在由浏览器处理,在后续的请求中自动添加到请求头里,第三方开发,需要根据实际情况处理sessionID */ 
 }, 
      fail: function(){ 
          /* 根据实际需求,对失败情况作处理 */ 
 }, 
      scope:this 
 }); 
 /* 第二步:请求认证 */ 
 Ext.Ajax.request({ 
 url : 'action.cgi?ActionID=Web_RequestCertificateAPI', 
     method : 'post', 
 jsonData : data, 
 success : function(){ 
         /* 认证成功后,根据具体场景进行处理 */ 
 }, 
 fail : function(){ 
         /* 认证失败,根据具体场景进行处理 */ 
 }, 
 scope : this 
 });

上述代码中,data就是上文提到的认证参数,如:

{"password":"Change_Me123","user":"api"}

认证成功后,返回结果:

{"success":1,"data":"{\"acCSRFToken\":\"sSaLX5qvKvqX9nubHamef5X5OjXW4GKC\"}"}

其中返回的acCSRFToken对应的字段为CSRF Token,后续会话提交的数据中都必须包含该字段;

基于Ext 2.3框架开发,可以通过在发送ajax请求前,将CSRF Token添加到请求的JSON数据后的方式统一处理,如:

Ext.Ajax.on('beforerequest',function(conn,options){

options.url = options.url + '?rmd=' + Math.random();

if('undefined' !== typeof options.jsonData && null !== options.jsonData){

options.jsonData.acCSRFToken = "savedCsrfToken";

}

else{

options.jsonData = {'acCSRFToken': "savedCsrfToken" };

}

},this);

翻译
下载文档
更新时间:2019-03-08

文档编号:EDOC1100044503

浏览量:5413

下载量:63

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页