2016-11-28 10 views
0

角度uiを別のパッケージとして使用し、バックエンドに対してlaravel backendを使用しています。ここでlarvelでcsrfトークンをバイパスすると、別の角度パッケージ私はミドルウェアを使用していません。誰も私にこの点で助けてもらえますか?角度uiでcsrfトークンを作成する方法

答えて

-1

あなたのような、CSRFトークンを返した、LaravelでAPIを作成することができます。

あなたがコントローラに例えば等のコントローラやミドルウェア、上の検証を追加する必要があります。もちろん、
Route::get('api/token', function() { 
    return Session::token(); 
}); 

あなたのangularjsコードで
public function list() { 
    if (Session::token() != $request->header('X-Csrf-Token')) 
     return Response::json('CSRF does not match', 400); 
    // Other code 
} 

、あなたはトークンを取得し、定数として登録してAPIにすべてangularjs HTTPRequestの中に注入することができができます

var xhRequest = new XMLHttpRequest(); 
xhRequest.open("GET", "api.yourdomain.com/api/token", false); 
xhRequest.send(null); 

app.constant("CSRF_TOKEN", xhRequest.responseText); 

app.run(['$http', 'CSRF_TOKEN', function($http, CSRF_TOKEN) {  
    $http.defaults.headers.common['X-Csrf-Token'] = CSRF_TOKEN; 
}]); 
+0

しかし、csrfトークンはポスト要求ごとに変更されます。角度パッケージで一定のままでも、laravelパッケージとは異なります。 私のangleは別のパッケージにあり、laravelは別のパッケージに入っています。どちらも独立しています。 –

+0

そのため、すべてのHttpRequestでは、上記のコードがAPIから取り出されたCSRFトークンを注入します。トークンは現在の要求に対して一定のままです。私はあなたの角と嘘つきが違うパッケージだから、私はこの答えを提案したのです。 – AWJ

0

私の知識に基づいています:ミドルウェアの行にコメントすることによって、デフォルトのトークンの動作をオフにします(すでに行ったように)。

jwt-authを使用して、jwt-authに付属のミドルウェアでリクエスト/ APIを保護する要求とともにトークンを渡すことができるので、これを恐れることはありません。 hereから詳細を得ることができます。

関連する問題