直播云

  • HTTP 请求鉴权

    最近更新时间:2017-03-17 14:55:13

    HTTP 请求鉴权

    每一个流管理请求均需在 HTTP 请求头部增加一个 Authorization 字段,其值为符合管理凭证的字符串,形式如下:

    Authorization: <QiniuToken>
    

    <QiniuToken>: 管理凭证,用于鉴权。

    生成管理凭证:

    // 构造待签名的 Data
    // 1. 添加 Path
    data = "<Method> <Path>"
    // 2. 添加 Query,前提: Query 存在且不为空
    if "<RawQuery>" != "" {
            data += "?<RawQuery>"
    }
    // 3. 添加 Host
    data += "\nHost: <Host>"
    // 4. 添加 Content-Type,前提: Content-Type 存在且不为空
    if "<Content-Type>" != "" {
            data += "\nContent-Type: <Content-Type>"
    }
    // 5. 添加回车
    data += "\n\n"
    // 6. 添加 Body,前提: Content-Length 存在且 Body 不为空,同时 Content-Type 存在且不为空或 "application/octet-stream"
    bodyOK := "<Content-Length>" != "" && "<Body>" != ""
    contentTypeOK := "<Content-Type>" != "" && "<Content-Type>" != "application/octet-stream"
    if bodyOK && contentTypeOK {
            data += "<Body>"
    }
    // 计算 HMAC-SHA1 签名,并对签名结果做 URL 安全的 Base64 编码
    sign = hmac_sha1(data, "Your_Secret_Key")
    encodedSign = urlsafe_base64_encode(sign)  
    // 将 Qiniu 标识与 AccessKey、encodedSign 拼接得到管理凭证
    <QiniuToken> = "Qiniu " + "Your_Access_Key" + ":" + encodedSign
    

    示例:

    GET /v2/hubs/PiliSDKTest/streams/Y2FydGVyMjAwMA== HTTP/1.1
    Host: pili.qiniuapi.com
    User-Agent: pili-sdk-go/v2 go1.6 darwin/amd64
    Authorization: Qiniu 7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:PGTUV-oRxWAIl6mdneJPSJieyyQ=
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip
    
    以上内容是否对您有帮助?
  • Close