2017-06-07 21 views
0

私はメインアプリケーションをセットアップしたLaravelアプリケーションを持っています。メインアプリケーションに関連する特定のタスクを処理するサブドメインを持っています。Laravelは別のサブドメインに投稿要求を送信します

のは、メインのアプリがあるとしましょう:質問は、私はレビューでコントローラからのPOSTリクエストを送信することができますどのように、あるreview.xyz.com

app.xyz.com とサブドメインれます.xyz.comの経路にapp.xyz.com?ここで

が、私は黙って失敗しただけでがつがつ食うし、使用しようとしているものです(応答は、メインアプリのちょうどログイン画面だった何もログに起こっていない。):

Route::post('approve', function(){ 
    $client = new Client(['base_uri' => env("MAIN_APP_URL")]); 

    $response = $client->request('POST', 'public/approve'); 
    $body = $response->getBody(); 

    return $body; 
}); 

どのようにして、この中にCSRFの保護作業場合?

+0

'public/approve'ルートに行くにはログインする必要がありますか?これにより、ログインページにリダイレクトされる理由が説明されます。 – mimo

+0

これらの2つの別々のアプリケーションか、サブドメインルーティングの同じアプリですか? –

+0

@mimo実際には、ミドルウェアを使用するように設定されていないため、CSRFトークンの不一致例外がリダイレクトを行っている可能性があります。 –

答えて

0

通常、別のjson apiを呼び出すと、csrfは使用されません。代わりに、jwtやlaravel api_tokenなどのAPIトークンを使用します。したがって、あなたのお腹の中で、あなたは承認のためのヘッダを追加するでしょう。

$client->request('GET', 'example.com/get', [ 
    'headers' => [ 
     'Authorization' => 'Bearer your-long-api-token', 
     'Accept'  => 'application/json' 
    ] 
]); 
+0

ありがとう、これらのルートでcsrfを無効にし、ポストパラメータをグーグルで転送することで解決しました。これらのルートを保護するために提案されたapisを調べるつもりです –

+0

routes/web.php'(laravel 5.3+)を使用する代わりに、@SeyongChoエンドポイントを 'routes/api.php'に移動します。 – xmhafiz

+0

ここはapi_token https:// gistlog.co/JacobBennett/090369fbab0b31130b51 – xmhafiz

関連する問題