ユーザがシステムにログインすると cookie にセッション情報が登録され,アクセスの度にセッション情報が確認されます.セッションの有効期限は .env ファイルで次のとおり設定されています.
.env (抜粋)
SESSION_DRIVER=file
SESSION_LIFETIME=120
上のとおり,セッションの有効期限は 120 分です.最後のアクセスから 120 分間経過した時点で有効期限が切れ,次のアクセスの時には再びログインが必要になります.120分待っても良いですが,値を2のような小さな値に変更して実験すると良いでしょう.
.env (抜粋)
SESSION_DRIVER=file
SESSION_LIFETIME=2
なお,.env ファイルを変更した場合は,Webサーバの再起動が必要になります(自動的に再起動されるはずです).終了するには Ctrl + C を押してください.
vagrant@ubuntu2204 laravelAuth $ php artisan serve --host=192.168.56.101 --port=8000 ⏎
INFO Server running on [http://192.168.56.101:8000].
Press Ctrl+C to stop the server
ログインした後,2分以上放置をしてから再び /dashboard のページを再読み込みします.有効期限が切れているので,ログイン画面にリダイレクトされるはずです.
その後,有効期限の値を 120 に戻すか,任意の値にすると良いでしょう.
.env (抜粋)
SESSION_DRIVER=file
SESSION_LIFETIME=120
なお,.env ファイルで SESSION_DRIVER=file
となっていることからセッション情報はファイルとして storage/framework/sessions フォルダに保存されます.この設定を SESSION_DRIVER=database
とするとセッション情報がデータベースに保存されます.しかし,データベースに MySQL を利用している時にはセッション情報をデータベースで管理できたのですが,SQLite 利用時にはうまく動作しませんでした.(ロードバランサ(負荷分散装置)を設置して,Web サーバを冗長化する時,セッション情報はデータベースで保存することになるでしょう.そのような構成で SQLite を使うことは想定しにくく,MySQL 等を利用することになるでしょう.)