2015-04-16 4 views
3

На моем веб-сайте администраторам разрешено создавать новый пароль для пользователей и отправлять им новый пароль.Laravel log different user out

Как я могу закончить все сеансы для пользователя, у которого теперь есть новый пароль?

Я использую laravels Auth класс.

В течение пользователей войти себя, что я использовать Auth::logout();

+0

Вы можете взглянуть на исходный код laravel: https://github.com/laravel/framework/blob/4.2/src/Illuminate/Auth/Guard.php – sleepless

+1

Судя по коду и документам, вы должны вызвать 'Auth :: setUser ($ user)' перед вызовом 'logout()' и передать ему экземпляр 'User'. Тем не менее, я просто попробовал, и он не работает - он регистрирует _me_ out, а не тот пользователь, которого я ему передал. Может быть, это ошибка ... В любом случае, я отправил [вопрос] (https://github.com/laravel/framework/issues/8448), чтобы вы могли захотеть последовать за этим –

+0

Это не ошибка, а @KaloyanDoichinov. setUser делает ваш журнал так, как если бы вы использовали $ user в переменной. Полезно, если вы хотите протестировать, как будто вы, где этот пользователь. Метод logout() выдает метод вызова метода. Так что все работает так, как должно. –

ответ

0

Для вернувшихся посетителей, если вы используете красноречивые и установили вашу базу, используя их направляющие, то ваш стол пользователя должен иметь remember_token поля. Удаление содержимого этого поля не позволит им автоматически регистрироваться при следующем посещении.

Однако в краткосрочной перспективе Laravel знает, зарегистрирован ли пользователь по идентификатору сеанса. Я не верю, что в чистом Laravel есть способ обойти это, но вы могли бы добавить его, расширив класс Auth. Затем вы можете заставить его проверить базу данных на значение, которое вы установили, чтобы увидеть, нужно ли принудительно отключить пользователя.

Как именно вы это делаете в Ларавеле, я не уверен. Теоретически Фасад должен сделать это проще, но по моему опыту верно обратное. Если этот вопрос все еще будет открыт в понедельник, когда я вернусь к работе, я посмотрю, смогу ли я его обработать, но я не самый большой поклонник Laravel и отказываюсь использовать его дома. ; p