Как изменить маршрут перенаправления для непроверенного пользователя в laravel? - PullRequest
0 голосов
/ 09 октября 2018

У меня несколько логинов user, admin и client.Аутентификация работает нормально для всех пользователей.Но у меня есть проблема, чтобы перенаправить их на другой маршрут, когда их сеанс входа в систему заканчивается, или если они пытаются получить доступ к страницам без входа в систему. Все они перенаправлены на login маршрут.

Я знаю, что маршрут перенаправлениянастроено в Middleware/Authenticate.php.Но я не знаю, как изменить его так, чтобы он работал так, как я хотел.

<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
      protected function redirectTo($request)
      {
         if ($this_is_an_admin){ // How to manage this?
            return route('admin/login');
         }
         elseif ($this_is_a_client){ // How to manage this?
            return route('client/login');
         }
         else {
            return route('login');         
         }
      }
}

Так как я могу назначить разные маршруты для каждого пользователя, например, user идет к user/login, adminидет к admin/login и client идет к client/login.

1 Ответ

0 голосов
/ 09 октября 2018

Когда пользователь вышел из системы, вы не знаете, кто является текущим пользователем в сеансе.Следовательно, вы не можете переключаться на другие маршруты в зависимости от текущего пользователя.

Одним из возможных решений является сохранение последней роли пользователя (администраторы, клиент или пользователь) в файле cookie и использование этого значения в промежуточном программном обеспечении.Конечно, вы должны устанавливать cookie каждый раз, когда пользователи входят в систему успешно или через другое промежуточное ПО, которое добавляет cookie после каждого аутентифицированного ответа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...