В проекте laravel как я могу по-разному перенаправлять пользователей и администраторов после того, как они вошли в систему? - PullRequest
0 голосов
/ 03 февраля 2020

В таблице пользователей я добавляю столбец с именем (level), и теперь я хочу перенаправить пользователей с уровнем администратора в представление paneladmin после входа в систему и перенаправить пользователей с уровнем пользователя в домашнее представление.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Laravel предоставляет функциональность перенаправления loigin из коробки. Все, что вам нужно сделать, это изменить встроенное в redirectIfAuthenticated промежуточное программное обеспечение Laravel. Итак, у вас будет что-то вроде этого:

public function handle( $request, Closure $next, $guard = null ) {
        if ( Auth::guard( $guard )->check() ) { //check if user is authenthicated
            $user = Auth::user();
            switch ( $user->level ) {
                case 'admin':
                    return redirect( )->route('admin');
                    break;
                case 'user':
                    return redirect()->route('user');
                    break;
                default:
                    return redirect( '/' );
            }
        }
        return $next( $request );
    }

Итак, в этом примере мы проходим роли аутентифицированного пользователя, чтобы определить, с какой страницы он должен быть перенаправлен. Это базовый c пример того, как обрабатывать разные роли для пользователей, но он должен дать вам представление о том, как работает этот материал, и помочь вам в решении вашей проблемы. Вы можете прочитать больше о Laravel во встроенной системе аутентификации в официальной документации , где вы можете найти больше методов, которые обрабатывают функциональность logi c. Надеюсь, что это поможет вам и приведет вас в правильном направлении.

0 голосов
/ 03 февраля 2020

в контроллере перед перенаправлением пользователя вы должны проверить уровень пользователя и перенаправить пользователя в соответствии с уровнем пользователя.

, если использовать аутентификацию по умолчанию в laravel 6 go по этому пути => your_project/vendor/laravel/framework/src/llluminate/Foundation/Auth/AuthenticatesUsers.php

найдите protected function authenticated(Request $request, $user) и измените нижний код в своем проекте и поместите внутрь authenticated метод:

if($user->level == 'admin') {
  return redirect()->route('admin.dashboard');
} else if($user->level == 'user'){
  return redirect()->route('user.dashboard');
}

, для более подробной информации вы можете увидеть этот вопрос: Laravel 5.4 перенаправление на пользовательский URL после входа в систему

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