как сделать authenti c user afte login не может зайти на страницу администратора - PullRequest
0 голосов
/ 29 января 2020

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

Это мой Middleware Player. Проблема в том, что после того, как я войду в систему как пользователь, я все еще могу получить доступ к странице администратора.

Middleware: Игрок

<?php

namespace App\Http\Middleware;

use Auth;
use Closure;

class Player
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            return redirect()->route('login');
        }

        if (Auth::user()->role == 1) {
            return redirect()->route('admin');
        }

        if (Auth::user()->role == 2) {
            return $next($request);
        }
    }
}

и это мой маршрут

Rout:

// User Route
Auth::routes(['verify' => true]);
Route::get('/player', 'PlayerController@index')->name('player')->middleware('player');
Route::post('/player/submit', 'PlayerController@createPlayer');

// Admin Route
Route::get('/admin', 'AdminController@index')->name('admin')->middleware('admin');

1 Ответ

0 голосов
/ 29 января 2020

Убедитесь, что вы зарегистрировали свое промежуточное ПО в App/Http/Kerner.php сразу после этого, отладьте ваше промежуточное ПО с помощью помощника dd(Auth::user()) или dump(Auth::user()) и убедитесь, что запрос успешно входит в ваше промежуточное ПО.

public function handle($request, Closure $next)
{

    dd(Auth::user());

    // Or

    dd(Auth::user()->role);

    if (!Auth::check()) {
        return redirect()->route('login');
    }

    if (Auth::user()->role == 1) {
        return redirect()->route('admin');
    }

    if (Auth::user()->role == 2) {
        return $next($request);
    }
}

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