#laravel #laravel-authentication
#laravel #laravel-аутентификация
Вопрос:
Я создал MultiAuth, теперь я могу войти в систему с моей новой учетной записью администратора. Но проблема в том, что он перенаправляет меня на обычную страницу входа в Auth, потому что я гость. Но я также вошел в систему как администратор.
Когда я вхожу в систему с обычной аутентификацией, это работает как обычно,
некоторый код для тестирования :
@guest
Guest
@endguest
@auth('web')
web
@endauth
@auth('admin')
admin
@endauth
Когда я вхожу в систему с обычным пользователем, он показывает :
Web
когда я вышел из всего, что показывает :
guest
и когда я вхожу в систему с помощью администратора, он показывает :
guest admin
Как я могу отключить / выйти из системы гостя при входе с помощью администратора?
Комментарии:
1. Вы должны разделить LoginControllers для каждого из ваших guard и выполнить auth()-> guard(‘web’)-> logout(); для LoginController администратора и auth()-> guard (‘admin’)-> logout(); для контроллера входа пользователя точно после успешного входа.
2. В этом случае, если вы входите в систему с помощью admin, вы уверены, что никто не входил в систему с помощью web guard, и то же самое для входа в систему через Web
3. @TohidDadashnezhad, у меня есть 2 контроллера. 1 для обычного пользователя и 1 для администратора. Оба контроллера используют AuthenticatesUsers, в контроллере для входа в систему администратора я переопределяю функции showLoginForm и guard,
4. куда я должен поместить auth ()-> guard(‘web’)-> logout()
5. переопределите также метод sendLoginResponse. Этот метод вызывается, когда пользователь успешно вошел в систему.