生成的token有时可用有时不可用

新手上路,请多包涵

由于是自己使用,我的token是直接在客户端用JavaScript生成,但在使用过程中,发现有时生成的token可以用,有时生成的token在上传的时候提示:
客户端认证授权失败。请重试或提交反馈。(401:bad token)
有谁知道是咋回事不?
生成token的代码:

    function get_token(){


     var deadlinetime=Math.round(new Date().getTime() / 1000) + 1 * 3600

     var PutPolicyjson=getPutPolicy(deadlinetime);


PutPolicyjson=JSON.stringify(PutPolicyjson);

    var encoded = base64encode(utf16to8(PutPolicyjson));



var hash = CryptoJS.HmacSHA1(encoded, my_api_secret);
        var encoded_signed = hash.toString(CryptoJS.enc.Base64);

        var myuptoken=my_key+":"+encoded_signed+":"+encoded;
        return myuptoken;


    } 
阅读 4.4k
2 个回答
✓ 已被采纳新手上路,请多包涵

七牛的技术已经解决了, 验证过,已经解决
客户支持 (七牛客户支持)
3月12日 18:24
您好,可能是这个原因
URL安全的Base64编码适用于以URL方式传递Base64编码结果的场景。该编码方式的基本过程是先将内容以Base64格式编码为字符串,然后检查该结果字符串,将字符串中的加号+换成中划线-,并且将斜杠/换成下划线_,同时尾部保持填充等号=。
参考:
http://developer.qiniu.com/docs/v6/api/overview/appendix.html#urlsafe-base64

能否提供详细的报错信息,以及七牛返回的请求头信息,401 bad token偶尔发生,可能是因为生成的上传凭证的上传策略中的scope参数指定了和上传函数中不同的key导致的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进