2017-06-07 4 views
0

WebアプリケーションをAngular(Angular)に作成しています。Angularを使用してユーザーを認証するAPI

APIエンドポイント経由で新しいユーザー情報をサードパーティのソフトウェアに渡すためのフォームを作成しました。私は

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を取得するにはname(new user)email(new user)user_key(mine)api_key (changes evry hour)

を渡すために必要なデータを投稿する

新しいキー私はデータを投稿するためにフォームポストでそれを渡すことができます。

質問

私は新しいapi_keyを取得するためにポストを用量と私の新しいユーザーポストにapi_key変数を変更し、データの投稿する前に実行される機能を持っている病気の必要性を考えます。

これは私がどのように角度でこれを行うのですか?新しいユーザーデータを投稿する現在のポストコントローラを追加しました。

私のコントローラ

// 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> 

だからこの部分はOKですが、これは、私は、最新のapi_keyを取得するので、実行する前に、どのように私は、関数を実行しますか?そしてもっと重要なことに、私はそれをどのように安全にすることができますか?私はすべて配置する必要があります

APIは、セキュリティのためにPardot

です。サポートされているスクリプトのAPIリクエストはおそらくノードですか?

答えて

0

あなたはapp.run()を使用してその中の関数を書くことができます。 app.run()は常にコントローラの前で実行されます。ここであなたがチェックできる1つのリンクですAngularJS app.run() documentation?

+0

私はポストコントローラにapi_keyを保存してapi_keyを保存する関数を作成しました。 – Beep

+0

はい、ここで気づくべきもう1つ重要なことは、アプリケーションでユーザーセッションを維持している場合、そのセッションにセッションを保存し、app.run()に$ scope.sessionDetails(); –

関連する問題