#laravel #session #overriding #logout
#laravel #сессия #переопределение #Выход
Вопрос:
Я сталкиваюсь с некоторой проблемой переопределения функции в Laravel. Это функция logoutOtherDevices в папке поставщика (IlluminateAuth SessionGuard) в laravel. Я хочу передать a $user_name
в этой функции, чтобы разрешить некоторым пользователям многократный вход в систему.
public function logoutOtherDevices($password, $user_name, $attribute = 'password')
{
if (! $this->user() || $this->user()->user_name == $user_name) {
return;
}
$result = tap($this->user()->forceFill([
$attribute => Hash::make($password),
]))->save();
$this->queueRecallerCookie($this->user());
return $result;
}
Но поскольку это находится в папке поставщика, поэтому я не хочу редактировать код в основном файле.
Может ли кто-нибудь дать мне некоторые рекомендации по переопределению этой функции в LoginController?
Потому что я планирую добавить некоторое условие для завершения сеанса пользователя на другом устройстве.
Ценю все предложения и рекомендации.
Комментарии:
1. Это
SessionGuard
макросовместимый, вы можете добавлять к нему методы во время выполнения, иLoginController
он ваш, чтобы вы могли настроить, чтоLoginController
потенциально вызывает2. может быть, вы можете уточнить эти условия и то, что вы пытаетесь сделать, отличается
3. @lagbox спасибо за ответ, братан, я пытался создать условие, которое передает $user_name в этой функции, чтобы разрешить некоторым пользователям многократный вход в систему.
4. вы можете создать свою собственную версию этого метода так, как вы этого хотите, а затем вызвать свою версию из LoginController