5
0

More than 1 year has passed since last update.

[Laravel]ログインの有効時間を個別に設定する方法

Posted at

管理者と一般ユーザーなどで複数のログインフォームを持つ場合に、個別にログインの有効時間を設定する方法
意外と難しいやり方をしている記事が多かったため、メモ用に作成

やり方

app/Providers/AppServiceProvider.php
public function boot()
    {
        // 以下を追加する
        if (request()->is('admin*')) {
            // urlのpathに「admin」が含まれる場合はadmin用の設定を適応する            
            config(['session.cookie' => config('session.cookie_admin')]);
            config(['session.lifetime' => config('session.lifetime_admin')]);
        }
    }
config/session.php
    'lifetime' => env('SESSION_LIFETIME', 120),
    //以下を追加する
    'lifetime_admin' => env('SESSION_LIFETIME_ADMIN', 240),
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    // 以下を追加する
    'cookie_admin' => env(
        'SESSION_COOKIE_ADMIN',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session_admin'
    ),
.env
    SESSION_LIFETIME=120
    // 以下を追加する
    SESSION_LIFETIME_ADMIN=240 

上記の設定だと以下のようになります
(例) http://localhost/login ←pathに「admin」を含まないのでログインの有効時間は120分間
(例) http://localhost/admin/login ←pathに「admin」を含むのでログインの有効時間は240分間

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0