Laracode
Laracode

Управление сессиями на нескольких устройствах с функцией выхода из устройств в Laravel

Laravel предоставляет мощную функцию безопасности Auth::logoutOtherDevices(), позволяющую пользователям завершить все активные сессии на других устройствах, кроме текущего. Эта возможность особенно полезна для защиты аккаунтов в приложениях, работающих с конфиденциальными данными.

Реализация защиты сессий

Вы можете использовать этот механизм для повышения безопасности, например, при обнаружении подозрительной активности:

public function secureSessions(Request $request)
{
    Auth::logoutOtherDevices($request->password);

    return back()->with('status', 'Все сессии на других устройствах завершены');
}

Для корректной работы этого метода необходимо включить посредник auth.session в маршрутах:

Route::middleware(['auth', 'auth.session'])->group(function () {
    // Защищённые маршруты
});

Пример реализации: обновление пароля с выходом на других устройствах

class SecurityController extends Controller
{
    public function updatePassword(Request $request)
    {
        $validated = $request->validate([
            'current_password' => 'required',
            'new_password' => 'required|min:8|confirmed'
        ]);

        if (!Hash::check($request->current_password, Auth::user()->password)) {
            return back()->withErrors([
                'current_password' => 'Введён неверный текущий пароль'
            ]);
        }

        Auth::logoutOtherDevices($request->current_password);

        Auth::user()->update([
            'password' => Hash::make($request->new_password)
        ]);

        return redirect('/dashboard')
            ->with('status', 'Пароль обновлён, все другие устройства вышли из системы');
    }
}

Преимущества использования

Дополнительная защита аккаунта – предотвращает несанкционированный доступ к аккаунту, завершая старые сессии.

Простая реализация – требует всего несколько строк кода для интеграции в существующую систему аутентификации Laravel.

Контроль за активными сессиями – пользователи могут управлять своими устройствами, выходя из системы на всех устройствах, кроме текущего.

Этот подход помогает пользователям лучше контролировать безопасность своего аккаунта и предотвращает несанкционированный доступ через забытые активные сессии.

Последнее обновление 24.02.2025