Laravel 5.7 Guard и Middleware не работают - PullRequest
0 голосов
/ 02 февраля 2019

В моем экземпляре Laravel защита или промежуточное ПО не работает.Моя админ-панель всегда видна как авторизованная, так и не авторизованная.Я не понимаю, в чем проблема.

Маршрут

Route::get('/admin', 'admin\adminController@index')->middleware('auth:admin');
Route::get('/admin-login', 'auth\adminLoginController@index');
Route::post('/admin-login', 'auth\adminLoginController@login')->name('admin.login.submit');

Контроллер

<?php

namespace App\Http\Controllers\auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;

class adminLoginController extends Controller
{
    function __construct()
    {
        $this->middleware('guest:admin');
    }

    public function index()
    {
        return view('auth.admin-login');
    }

    public function login(Request $request)
    {
        $this->Validate($request, [
            'email' => 'required|email',
            'password' => 'required|min:6'
        ]);

        if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], false, false)) {
            return redirect('/admin');
        }

        return redirect()->back()->with('message', 'Invalid Information');
    }
}

Если яудалите __construct(), тогда я смогу зайти на страницу входа администратора, иначе я не смогу зайти !!

мой код auth.php:


Охрана:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],

],

Провайдеры

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'admins' => [
        'driver' => 'eloquent',
        'model' => App\admin::class,
    ],
],

adminController

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;

class adminController extends Controller
{
    public function index()
    {
        $user = User::all();
        $maleuser = User::where('gender', 'male')->get();
        $femaleuser = User::where('gender', 'female')->get();
        return view('admin/index')
            ->with('users', $user)
            ->with('maleusers', $maleuser)
            ->with('femaleusers', $femaleuser);
    }
}

1 Ответ

0 голосов
/ 02 февраля 2019

измените свой маршрут так, чтобы он выглядел следующим образом

Route::get('/admin', 'admin\adminController@index')->middleware('auth:admin');
Route::get('/admin-login', 'auth\adminLoginController@index')->middleware('guest:admin');
Route::post('/admin-login', 'auth\adminLoginController@login')->name('admin.login.submit')->middleware('guest:admin');

также отредактируйте эту строку в вашем adminLoginController

function __construct()
{
    $this->middleware('guest:admin')->except('logout');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...