开发者社区 > 云原生 > Serverless > 正文

前端vue调用函数http触发器 需要签名认证 sdk有没有?

前端vue调用函数http触发器 需要签名认证 sdk有没有?

展开
收起
百问录 2023-05-23 18:40:24 109 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    在前端调用函数计算的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&param2=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库进行加密。

    2023-05-23 18:51:02
    赞同 展开评论 打赏
  • 参考这个:https://developer.aliyun.com/article/1057070

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-05-23 18:51:03
    赞同 展开评论 打赏

快速交付实现商业价值。

相关电子书

更多
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载