Я использую 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,