Laravel не работает функция «Выйти из других устройств» - PullRequest
0 голосов
/ 23 марта 2020

Я использую Laravel 6.0.4. Меня попросили выйти из системы со всех устройств при каждом входе в систему из нового места. Предположительно, Laravel делает это очень просто: https://laracasts.com/series/whats-new-in-laravel-5-6/episodes/7

public function logoutOtherDevices($password, $attribute = 'password'){ ... }

Я вижу, что код меняет пароль ha sh в базе данных, но пользователь все еще вошел в систему. Так что, должно быть, где-то в коде я не могу проверить, что ha sh изменился. Я не эксперт, возможно, это проблема, связанная с охраной? В нашей системе четыре охранника. Может ли быть так, что некоторые из охранников не проходят аутентификацию правильно? Что охранник использует не ha sh из базы данных, а какую-то другую систему?

Итак, как мне выяснить, почему Laravel не выходит из системы с других устройств? Я поделюсь данными конфигурации, если вы хотите, просто спросите меня, какие данные отправлять


Auth. php

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'staff' => [
            'driver' => 'session',
            'provider' => 'staff'
        ],
       'partner' => [
           'driver' => 'session',
           'provider' => 'partner'
       ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

    'providers' => [
       'partner' => [
           'driver' => 'eloquent',
           'model' => \App\Models\Partner::class,
       ],
        'staff' => [
            'driver' => 'eloquent',
            'model' => \App\Models\Staff::class
        ],
        'users' => [
            'driver' => 'database',
            'table' => 'users',
        ],
    ],

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'partner' => [
            'provider' => 'partner',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'staff' => [
            'provider' => 'staff',
            'table' => 'password_resets',
            'expire' => 60,
        ]
    ],

сеанс. php

    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE', false),
    'http_only' => true,
    'same_site' => null,
...