我正在 Angular 中构建一个 Web 应用程序(我是 Angular 的新手)。
我构建了一个表单以通过 API 端点将新用户信息传递给第三方软件。
发布我需要传递的数据name(new user)
email(new user)
user_key(mine)
和api_key (changes evry hour)
要获得新的api_key
我需要发布
POST: https://pi.pardot.com/api/login/version/3
message body: email=<email>&password=<password>&user_key=<user_key>
这会返回
<rsp stat="ok" version="1.0">
<api_key><api_key here></api_key>
</rsp>
一旦我有了新的密钥,我就可以通过表单发布它来发布数据。
问题
我认为我需要有一个在发布数据之前运行的函数,以获取新的数据api_key
并更改api_key
我的新用户帖子上的变量。
所以主要问题是我如何使用 angular 来做到这一点,我在下面添加了我当前的 post 控制器来发布新的用户数据。
我的控制器
// submit button controller POST
// =============================================================================
FirstModule.controller('formController', function ($scope, $http) {
$scope.formData = {};
$scope.processForm = function (Fname, Lname, email) {
var data = {
Fname: $scope.formData.Fname,
Lname: $scope.formData.Lname,
email: $scope.formData.email,
api_key: 'changes every hr', //needs to be dynamic
user_key: 'my key'
};
//Call the services
$http.post('https://some api.com/api/prospect/version/4/do/create', JSON.stringify(data)).then(function (response) {
if (response.data)
$scope.formData = "Post Data Submitted Successfully!";
}, function (response) {
$scope.formData = "Post Data Submitted Failed";
$scope.statusval = response.status;
$scope.statustext = response.statusText;
$scope.headers = response.headers();
});
};
});
我的表格
<form name="myForm" id="signup-form" class="col-sm-8 col-sm-offset-2"
ng-submit="processForm()"
ng-click="postdata(formData)">
<!-- our nested state views will be injected here -->
<div id="form-views" ui-view></div>
</form>
所以这部分没问题,但是如何在运行之前运行一个函数以便获得最新的api_key
?更重要的是我怎样才能安全地做到这一点?
API 是Pardot
为了安全起见,我应该全部放置;支持脚本上的 API 请求可能是节点?