laravelバージョン5.5の新しいプロジェクトをlaravelインストーラーで作成しました。コマンドを実行します "php artisan make:authビューは、ユーザー認証用に生成されます。また、「php artisan migrate」を実行して、データベースに必要なテーブルを作成します。ログインページにアクセスして、ページを登録し、フォームに入力して送信します「非アクティブのためページの有効期限が切れています。更新してからもう一度試してください。」と表示されます。しかし、ページを更新しても何の助けにもなりません。
if ($e instanceof ModelNotFoundException) {
$e = new NotFoundHttpException($e->getMessage(), $e);
} elseif ($e instanceof AuthorizationException) {
$e = new AccessDeniedHttpException($e->getMessage());
} elseif ($e instanceof TokenMismatchException) {
$e = new HttpException(419, $e->getMessage());
}
「TokenMismatchException」がこの問題を引き起こしているようです。いつこれが起こりましたか?そして、なぜですか?この新しいプロジェクトを作成しただけで、他の変更は行いませんでした。あなたがポイントを得たことを願っています。私はphp 7.1.9を使用します(laravel 5.5にはphp> 7.0.0が必要です)そして開発環境でプロジェクトを提供します:php artisan serve
localhost:8000
(php artisan serve
)でも同じ問題が発生しました。偶然かもしれませんが、以前の開発で使用したものとは別の "clean browser"を試してください。私にとってはうまくいきました。
問題は、以前のLaravelバージョン、同じURLでの開発からのCookieにあるようです。
あなたはcsrfトークンを逃したと思います。
{!! csrf_field() !!}
の使用を忘れないでください
私の場合、同じエラーメッセージが表示され、csrf_token
{{ csrf_field() }}
または、フォームヘルパーがなければ、
<input type="hidden" name="_token" value="{{ csrf_token() }}">
それでもうまくいかない場合は、
ブラウザのキャッシュを更新そしてうまくいけば、うまくいきます。
私は同じ問題を抱えていました。それは、仮想ホストを使用していて、mydomain.comの変数の下に設定したためです。 config/session.phpファイル内
'domain' => env('SESSION_DOMAIN', 'mydomain.com'),
Nullに変更すると動作し始めました
'domain' => env('SESSION_DOMAIN', 'null'),
その背後にある理由はわかりませんが、今はうまく機能しています。
ストレージまたはブートストラップ/キャッシュのいずれか、または両方のアクセス許可設定のようです。
Cloudwaysサーバーを使用しています。 [アプリケーションの設定]でサーバーのアクセス許可をリセットしましたが、現在は機能しています。私のローカル開発サーバーでは、ストレージにchmod 777を設定することと同等でした。以前に755を使用したことがあり、エラーが続きました。
Csrfトークンを追加
<input type="hidden" name="_token" value="{{ csrf_token() }}">
この問題は主に、フォームにcsrfトークンがないために発生します。 csrfトークンの検証中に失敗するため、このページが表示されます。 Laravelは通常、すべてのフォームでcsrfトークンを必要とします。フォーム内にこれを追加するだけでcsrfトークンを追加できます。
{{ csrf_field() }}
これを行う別の方法は、verifycsrftokenミドルウェアでルートを除外することです。
ミドルウェアに保護されたフィールドをルート名とともに追加するだけです。
protected $except=[
'1st route',
'2nd route',
.
.
];
これは動作するはずです。
この問題もありました!以下によって解決しました:
php artisan cache:clear
storage/framework/sessions
フォルダは空でしたが、.gitignore
。新しいプロジェクトlocalhostを作成した場合、config/session行を表示する必要があります:166 if 'secure' => true、edit 'secure' => false少し英語を知って、希望があなたを助けることができる
csrf_token
メタタグ内。
<meta name="csrf-token" content="{{ csrf_token() }}">
これと同じ問題がありました。 vagrant reload --provision
私のために働いた
私は自分のAPIの投稿リクエストをテストするだけで、同じ問題に遭遇しました。ミドルウェアVerifyCsrfToken
の_$except
_配列にルートを追加することで解決しました。つまり、_app/Http/Middleware/VerifyCsrfToken
_に移動して追加します。
_protected $except = [
'your/route'
];
_
ただし、リクエストが何らかのフロントエンドプラットフォームまたはビューからのものである場合は、リクエストを送信するフォームに{{ csrf_field() }}
を追加することをお勧めします。
皆さんに適用したいグループパスについては、この方法を使用してください。これは私の5.5幼生バージョンです。スターを使用=> app/Http/Middleware/VerifyCsrfTokenに移動して追加
protected $except = [
'/user/*'
];
これは私のユーザーのパスでもあります
Route::group(['prefix' => 'user', 'namespace' => 'User', 'as' => 'user.'] , function (){