Пользователи Laravel не могут войти, и только администраторы могут войти - PullRequest
0 голосов
/ 07 сентября 2018

в laravel Я могу войти с учетными записями администратора без проблем, но когда я захожу с любой учетной записью пользователя, он не регистрируется и не выдает никакой ошибки, только страница входа обновляется, и это происходит без единой ошибки, да, я проверил Chrome inspect и HttpRequest и ничего не происходит, также проверьте базу данных MySQL, в этом нет ничего плохого и она не выдаст ошибку.

LoginController

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

RedirectIfAuthenticated

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/home');
        }

        return $next($request);
    }
}

это другой LoginController

класс LoginController расширяет контроллер {

private $Administrator;

function __construct(Administrator $administrator) {
    $this->Administrator = $administrator;
}

public function index(){
    if(Auth::check()) return redirect('/dashboard');

    return view('index.login');
}

public function login(Request $request){

    if(Auth::check()) redirect('/dashboard');

    $Username = $request->input('username');
    $Password = $request->input('password');

    $Admin = $this->Administrator->checkAuthenticate($Username,$Password);

    if($Admin){
        Auth::loginUsingId($Admin->id, true);
        return redirect('/dashboard');
    }

    return redirect('/login');
}

public function logout(){

    if(Auth::check()){
        Auth::logout();
    }

    return redirect('/login');
}

}

1 Ответ

0 голосов
/ 07 сентября 2018

if(Auth::check()) redirect('/dashboard');

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

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