2017-09-18 1 views
0

ウェブサイトにサインアップフォームを表示したいが、ユーザーが送信したときにフォームデータがLaravelアプリケーション(別のサーバー上)に登録されて登録されます。別のサーバーからLaravelにサインアップする

これまでのところ、laravelはCSRFが見つかりませんでした例外をスローします。どのようにそれを回避するにはどのようなアイデア?

+1

ログインページのcrsfトークンを無視し、 'Http/Middleware/VerifyCrsfToken.php'の' except'配列に '/ login'を追加してください。CRSFトークンの理由があることに注意してください。あなたのサイトへの不要なアクセスを簡単にします。 – milo526

+1

登録のためのAPIを作成し、そのAPIをサイトから呼び出す方法について... APIガイダンスについてはこちらをチェックしてくださいhttps://laracasts.com/discuss/channels/general-discussion/rest-api-help –

答えて

1

両方のアプリケーションがあなたのものであれば?

新しいミドルウェア・グループを作成することができます

protected $middlewareGroups = [ 
    'web' => [ 
     ... 
    ], 

    'remote-login' => [ 
      \App\Http\Middleware\EncryptCookies::class, 
      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
      \Illuminate\Session\Middleware\StartSession::class, 
      // \Illuminate\Session\Middleware\AuthenticateSession::class, 
      \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
      // \App\Http\Middleware\VerifyCsrfToken::class, 
      \Illuminate\Routing\Middleware\SubstituteBindings::class, 
    ], 
]; 

VerifyCsrfTokenミドルウェアを無効/削除/コメント。次に、新しいファイルにマップ:アントニオのアプローチがうまくいく

Route::group(['prefix' => 'remote-login'], function() { 
    Route::get('/auth/8g7h6jk5l4oA/', function() { 
     dd('do you authentication'); 
    }); 
}); 
1

、それだけでルートを追加する方が簡単です:

protected function mapWebRoutes() 
{ 
    Route::middleware('web') 
     ->namespace($this->namespace) 
     ->group(base_path('routes/web.php')); 

    Route::middleware('remote-login') 
     ->namespace($this->namespace) 
     ->group(base_path('routes/remote-login.php')); 
} 

その後、あなたroutes/remote-login.phpに、あなたはより良い非自明ログインルートを作成します$except配列のCSRFミドルウェアで保護されたくない場合はapp/Http/Middleware/VerifyCsrfToken.phpになります。

関連する問題