반응형
VueJS + Gravity Forms API
VueJs 프로젝트를 Gravity Forms와 통합하려고 하는데, VueJs 프로젝트에서 API에 필요한 GF 암호화를 실행하는 방법을 모르겠습니다.
아래 개요와 같이 시그니처를 먼저 계산한 후 값을 부가하여 GF API로 전송해야 합니다.
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 코드에 넣지 마십시오.
안전한 방법은 다음과 같습니다.
FrontEnd VueJS 프로젝트 -> 서버에 API 요청(백엔드) -> 개인 키를 사용하여 Gravity Forms에 API 요청을 합니다.
언급URL : https://stackoverflow.com/questions/43042019/vuejs-gravity-forms-api
반응형
'programing' 카테고리의 다른 글
Vuejs : 오브젝트를 프로펠러로 전달하여 컴포넌트가 서브 오브젝트를 갱신하도록 하는 방법 (0) | 2022.05.29 |
---|---|
**는 C언어로 무엇을 합니까? (0) | 2022.05.29 |
JAXB에 의해 생성된 @XmlRootElement가 없습니다. (0) | 2022.05.29 |
curl_global_init, curl_easy_init 및 기타 함수에 대한 정의되지 않은 참조(C) (0) | 2022.05.29 |
vue b-table 모든 행을 표시하도록 페이지 번호 사용자 지정 (0) | 2022.05.29 |