Laravel 10 入門トップページ


目次

  1. 全体の概要
  2. Laravel によるユーザ認証
    1. 概要
    2. プロジェクトの作成と初期設定
    3. メールの設定
    4. Laravel Breeze のインストール
    5. ユーザ登録機能の動作確認
    6. シーダによるテストユーザの登録
    7. テーブルにログイン ID の属性を追加
    8. ユーザ登録機能の修正
    9. ログイン ID でログインするように変更
    10. メールアドレスの検証
    11. シーダの修正
    12. 検証メールの有効期限と再送信
    13. セッション継続時間の確認と変更
    14. メールアドレスの変更
    15. パスワードの変更
    16. アカウントの削除
  3. ユーザ認証を備えたコメント掲示板の開発
  4. マルチ認証の実現

Laravel でユーザ認証とマルチ認証を実現する

Laravel によるユーザ認証

セッション継続時間の確認と変更

ユーザがシステムにログインすると 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 のページを再読み込みします.有効期限が切れているので,ログイン画面にリダイレクトされるはずです.

laravel10-2023-auth-37.png

その後,有効期限の値を 120 に戻すか,任意の値にすると良いでしょう.

.env (抜粋)SESSION_DRIVER=file
SESSION_LIFETIME=120

なお,.env ファイルで SESSION_DRIVER=file となっていることからセッション情報はファイルとして storage/framework/sessions フォルダに保存されます.この設定を SESSION_DRIVER=database とするとセッション情報がデータベースに保存されます.しかし,データベースに MySQL を利用している時にはセッション情報をデータベースで管理できたのですが,SQLite 利用時にはうまく動作しませんでした.(ロードバランサ(負荷分散装置)を設置して,Web サーバを冗長化する時,セッション情報はデータベースで保存することになるでしょう.そのような構成で SQLite を使うことは想定しにくく,MySQL 等を利用することになるでしょう.)

目次に戻る