• 企业服务端接口认证案例


    接口认证方式

      调用方要向管理员获取 appkey 和 secret。

      appkey:调用方唯一标识,方便 HTTP-API 统计与维护;

      secret:密钥,用于生成 HTTP-API 校验所需的 token 值;

      调用方每次请求都需要带上当前时间戳参数 time,这里的时间戳指 UTC时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总毫秒数。

      调用方遵照 HTTP-API 约定规则生成 token,并作为接口调用的请求参数传入服务端进行校验。

    生成 token 值

      Token值是将请求源串以及Secret通过MD5算法生成的,用来提高传输过程参数的防篡改性。

      token值的生成共有2个步骤:构造源串生成token。详见下面的描述。

      Step1.构造源串

        a.获取要请求URI(统一资源标识符,即域名后面的地址串,示例:/openapi/service/vss/preview/getPreviewParamByCameraUuid);

        b.将输入参数(系统参数和业务参数)生成JSON串;

        c.将a中URI和b中得到的字符串和secrect拼接起来得到源串。

      请求参数:

    {
    
        "appkey": "61fdb13b", 
    
        "time": 1479364577369, 
    
        "opUserUuid": "43a9a55f76474bde89ecabc1d6914a7f", 
    
        "cameraUuid": "b785bcf358154a4594651b4b21ddd0af", 
    
        "netZoneUuid": "11d0e493870d40f9b2589383cf73001f"
    
    }

      请求参数生成 JSON 串:

    {"appkey":"24982ba6","time":1479364577369,"opUserUuid":"43a9a55f76474bde89ecabc1d6914a7f","cameraUuid":"b785bcf358154a4594651b4b21ddd0af","netZoneUuid":"11d0e493870d40f9b2589383cf73001f"} 

      将前两步中得到的字符串和secrect拼接起来得到源串(请求URI+参数串+secret

    /openapi/service/vss/preview/getPreviewParamByCameraUuid{"appkey":"24982ba6","time":1479364577369,"opUserUuid":"43a9a55f76474bde89ecabc1d6914a7f","cameraUuid":"b785bcf358154a4594651b4b21ddd0af","netZoneUuid":"11d0e493870d40f9b2589383cf73001f"}aa7aa8a8fa604c60866413f52563b70c

      Step2.生成token

      使用MD5算法对Step1中得到的源串进行运算,得到token值(大写):

    MD5(/openapi/service/vss/preview/getPreviewParamByCameraUuid{"appkey":"24982ba6","time":1479364577369, "opUserUuid":"43a9a55f76474bde89ecabc1d6914a7f","cameraUuid":"b785bcf358154a4594651b4b21ddd0af","netZoneUuid":"11d0e493870d40f9b2589383cf73001f"}aa7aa8a8fa604c60866413f52563b70c)

      token值:5067D805D98456393A1C5DFE849B883B

      注:

        1.生成token的请求参数顺序与请求URL中的参数顺序保持一致

        2.每次请求都重新生成token值

        3.token值为32位长度的大写字符串

    发起请求

      Step1.token参数和值拼接到POST请求URL后面

    http://IP:PORT/openapi/service/base/user/getPreviewParamByCameraUuid?token=5067D805D98456393A1C5DFE849B883B

      Step2.发起请求

      ajax 填写参数:

    {
    
        "appkey": "61fdb13b", 
    
        "time": 1479364577369, 
    
        "opUserUuid": "43a9a55f76474bde89ecabc1d6914a7f", 
    
        "cameraUuid": "b785bcf358154a4594651b4b21ddd0af", 
    
        "netZoneUuid": "11d0e493870d40f9b2589383cf73001f"
    
    }
  • 相关阅读:
    MFC 将文件拖进对话框获得文件信息
    微软历史最高市值是多少?
    ZooKeeper的学习与应用
    OutputCache祥解
    本人的微博转移
    java list三种遍历方法性能比較
    VS2010旗舰版安装图解
    SSL协议具体解释
    freemarker字符串拼接
    [java web 入门](一)MyEclipse & HelloWorld 记录
  • 原文地址:https://www.cnblogs.com/yuqlblog/p/9167593.html
Copyright © 2020-2023  润新知