ウェブサイトにサインアップフォームを表示したいが、ユーザーが送信したときにフォームデータがLaravelアプリケーション(別のサーバー上)に登録されて登録されます。別のサーバーからLaravelにサインアップする
これまでのところ、laravelはCSRFが見つかりませんでした例外をスローします。どのようにそれを回避するにはどのようなアイデア?
ウェブサイトにサインアップフォームを表示したいが、ユーザーが送信したときにフォームデータがLaravelアプリケーション(別のサーバー上)に登録されて登録されます。別のサーバーからLaravelにサインアップする
これまでのところ、laravelはCSRFが見つかりませんでした例外をスローします。どのようにそれを回避するにはどのようなアイデア?
両方のアプリケーションがあなたのものであれば?
新しいミドルウェア・グループを作成することができます
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');
});
});
、それだけでルートを追加する方が簡単です:
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
になります。
ログインページのcrsfトークンを無視し、 'Http/Middleware/VerifyCrsfToken.php'の' except'配列に '/ login'を追加してください。CRSFトークンの理由があることに注意してください。あなたのサイトへの不要なアクセスを簡単にします。 – milo526
登録のためのAPIを作成し、そのAPIをサイトから呼び出す方法について... APIガイダンスについてはこちらをチェックしてくださいhttps://laracasts.com/discuss/channels/general-discussion/rest-api-help –