Javascript VueJS+;重力形成API
我正在考虑将VueJS项目与Gravity表单集成,但是我不知道如何从VueJS项目触发API要求的GF加密 如下所述,在附加值并发送到GF API之前,需要首先计算签名Javascript VueJS+;重力形成API,javascript,wordpress,vuejs2,gravity-forms-plugin,gravityforms,Javascript,Wordpress,Vuejs2,Gravity Forms Plugin,Gravityforms,我正在考虑将VueJS项目与Gravity表单集成,但是我不知道如何从VueJS项目触发API要求的GF加密 如下所述,在附加值并发送到GF API之前,需要首先计算签名 function CalculateSig(stringToSign, privateKey){ //calculate the signature needed for authentication var hash = CryptoJS.HmacSHA1(stringToSign, privateKey); var bas
function CalculateSig(stringToSign, privateKey){
//calculate the signature needed for authentication
var hash = CryptoJS.HmacSHA1(stringToSign, privateKey);
var base64 = hash.toString(CryptoJS.enc.Base64);
return encodeURIComponent(base64);
}
//set variables
var d = new Date;
var expiration = 3600; // 1 hour,
var unixtime = parseInt(d.getTime() / 1000);
var future_unixtime = unixtime + expiration;
var publicKey = "KEY HERE";
var privateKey = "KEY HERE";
var method = "POST";
var route = "forms/2/submissions";
stringToSign = publicKey + ":" + method + ":" + route + ":" + future_unixtime;
sig = CalculateSig(stringToSign, privateKey);
var url = 'http://stephenkempin.co.uk/vuejs/gravityformsapi/' + route + '?api_key=' + publicKey + '&signature=' + sig + '&expires=' + future_unixtime;
var values = {input_values : {
input_1 : 'Name',
input_2 : 'This is surname',
input_5 : 'email@Address.com',
input_4 : 'Message testing'
}
}
您应该有一个服务器,可以为您发出API请求。不要把它放在公开的FE代码中,因为它很容易被公众看到 安全的方法是:
前端VueJS项目->向服务器发出API请求(后端)->使用私钥向表单发出API请求 这一行引起了关注:
var privateKey=“KEY HERE”代码>不应该在前端代码中公开这一点,因此考虑在服务器上生成此值,将表单字段值传递给服务器并从那里传递到安全API可能是有意义的吗?