質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

1回答

11836閲覧

laravel 時間が経つとcsrf-tokenが消える

yuu-12

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/06/08 03:15

編集2018/06/08 03:23

前提・実現したいこと

laravel,PHPでログイン機能を持つアプリケーションを作成しています。
ログイン画面を一定時間放置してからログインしようとすると「The page has expired」が出てしまうのですが
これを無くしたいです。

発生している問題・エラーメッセージ

The page has expired due to inactivity. Please refresh and try again.

試したこと

この現象が出る場合はxsrf-tokenが送られていないみたいなので、セッションの有効期限を伸ばせばいいのかと思い
config/session.phpのlifetimeを'lifetime' => 50 * (60 * 24 * 365),にしましたが
セッションの有効期限は伸びたものの、xsrf-tokenが送られない問題は依然として解決せず。

VerifyCsrfToken.phpのcsrf-tokenを制御している箇所にもこのlifetimeが使われているのでここを変えればいいかと思ったのですが。。

protected function addCookieToResponse($request, $response) { $config = config('session'); $response->headers->setCookie( new Cookie( 'XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']), $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null ) ); return $response; }

補足情報(FW/ツールのバージョンなど)

laravelのバージョンは5.5.35
PHPのバージョンは7.1.15
です。

どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

XSRF-TOKENで制御もやっているなら、そこも設定が必要なのですが
追加でconfig/session.phpのlifetimeの値も修正が必要です。

追っかけると$request->session()->token()という記載があり、セッションからトークンを取得していることがわかります。
sessionはSessionManagerで作成されます。(https://github.com/laravel/framework/blob/5.6/src/Illuminate/Session/SessionManager.php)

投稿2018/06/11 10:19

編集2018/06/11 10:24
fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問