在前端调用函数计算的Http触发器时,需要进行签名认证,常用的签名方式是使用阿里云提供的SDK来生成签名。
在Vue中可以使用阿里云的SDK for Javascript来进行签名认证。具体步骤如下:
安装SDK npm install aliyun-sdk-js 使用SDK生成签名 import RPCClient from 'aliyun-sdk-js/src/RPCClient'; import HmacSHA1 from 'crypto-js/hmac-sha1'; import Base64 from 'crypto-js/enc-base64'; const accessKeyId = 'yourAccessKeyId'; const accessKeySecret = 'yourAccessKeySecret'; const functionName = 'yourFunctionName'; const params = { 'param1': 'value1', 'param2': 'value2', }; const client = new RPCClient({ accessKeyId, accessKeySecret, endpoint: 'http://yourdomain.com', }); const requestOption = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'x-fc-date': new Date().toISOString(), 'x-fc-qualifier': 'LATEST', }, body: 'param1=value1¶m2=value2', }; const signature = Base64.stringify(HmacSHA1(requestOption.headers['x-fc-date'] + ' ' + requestOption.method + ' ' + requestOption.headers['Content-Type'] + ' ' + requestOption.body + ' ' + '/2016-08-15/proxy/' + functionName, accessKeySecret)); requestOption.headers['Authorization'] = FC ${accessKeyId}:${signature}
;
client.request('POST', /2016-08-15/proxy/${functionName}
, params, requestOption).then((result) => { console.log(result); }).catch((ex) => { console.log(ex); }); 在上面的代码中,accessKeyId和accessKeySecret需要替换成你自己的阿里云账号的AccessKey ID和AccessKey Secret,functionName需要替换成你要调用的函数计算的名称,params则是要传递的参数。在生成签名时使用了HmacSHA1算法,需要引入crypto-js库进行加密。
参考这个:https://developer.aliyun.com/article/1057070
此答案来自钉钉群“阿里函数计算官网客户"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。