Laravel MultiAuth вошел в систему, но видит меня как гостя

#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. Этот метод вызывается, когда пользователь успешно вошел в систему.