getAuthorization的callback函数具体怎么使用的呀?

  • 回答 (1)
  • 关注 (0)
  • 查看 (47)

请教,这个callback函数具体是啥意思呀,脑子在这怎么也转不过来了,受累解答,感谢~~~

var COS = require('cos-js-sdk-v5');
var cos = new COS({
    // 必选参数
    getAuthorization: function (options, callback) {
        // 服务端 JS 和 PHP 例子:https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/
        // 服务端其他语言参考 COS STS SDK :https://github.com/tencentyun/qcloud-cos-sts-sdk
        // STS 详细文档指引看:https://cloud.tencent.com/document/product/436/14048
        $.get('http://example.com/server/sts.php', {
            // 可从 options 取需要的参数
        }, function (data) {
            var credentials = data && data.credentials;
            if (!data || !credentials) return console.error('credentials invalid');
            callback({
                TmpSecretId: credentials.tmpSecretId,
                TmpSecretKey: credentials.tmpSecretKey,
                XCosSecurityToken: credentials.sessionToken,
                // 建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
                StartTime: data.startTime, // 时间戳,单位秒,如:1580000000
                ExpiredTime: data.expiredTime, // 时间戳,单位秒,如:1580000900
            });
        });
    }
});
用户4590653用户4590653提问于
可酷可乐

腾讯云 · 售后工程师 (已认证)

热爱云计算的小锅一枚。回答于
推荐已采纳

客户端请求COS,出于安全考虑使用的密钥要受到policy的约束,callback就是得到server端返回的 临时账号信息,包括

TmpSecretId: credentials.tmpSecretId,
TmpSecretKey: credentials.tmpSecretKey,
XCosSecurityToken: credentials.sessionToken,
StartTime: data.startTime, // 时间戳,单位秒,如:1580000000
ExpiredTime: data.expiredTime,

客户端再用临时账号密钥和token 对COS发起请求。

架构图参考官网文档

所属标签

可能回答问题的人

  • 云存储

    腾讯云 · 云存储 (已认证)

    17 粉丝0 提问0 回答
  • galenye

    腾讯 · 工程师 (已认证)

    5 粉丝0 提问38 回答
  • Jinqn

    腾讯 · 高级工程师 (已认证)

    19 粉丝0 提问60 回答
  • 田嵩

    腾讯科技 · 专家工程师 (已认证)

    3 粉丝0 提问0 回答

扫码关注云+社区

领取腾讯云代金券