Laravel authentication

0

I have a question which I could not solve throughout the day, it turns out that for my system (which is for a school) create a special login for teachers. When trying to login with professor

I put email password all ok, but when I log in, it redirects me to the Login again, and when I click on the teacher again, it sends me to my view that I need Does anyone know what could be wrong? I leave my file 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('profesor')->check()) {
            return redirect('/');
        }

        return $next($request);
    }
}

Authenticate file

<?php

namespace App\Http\Middleware;

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

class Authenticate
{
    /**
     * 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('profesor')->check()) {
            if ($request->ajax() || $request->wantsJson()) {
                return response('Unauthorized.', 401);
            } else {
                return redirect()->guest('/login');
            }
        }

        return $next($request);

    }
}

EsProfesor file

<?php

namespace App\Http\Middleware;

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

class EsProfesor
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (!Auth::guard('profesor')->check()) {
                return response('Unauthorized.', 401);
        }

        return $next($request);
    }
}

and the Auth / AuthProfesorController driver

<?php

namespace App\Http\Controllers\Auth;

use App\Profesor;
use App\Http\Requests\ProfesorRequest;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Support\Facades\Auth;

class AuthProfesorController extends Controller
{
    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    protected $loginView = 'profesores.login';
    protected $registerView = 'profesores.register';
    protected $guard = 'profesor';
    protected $redirectTo = 'profesores/login';

    public function __construct()
    {
        $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
    }



    protected function validator(array $data)
    {
        return Validator::make($data, [
            'rut' => 'required|unique:profesores',
            'nombre' => 'required|max:30',
            'apellido_paterno' => 'required|max:30',
            'apellido_materno' => 'required|max:30',
            'email' => 'required|email|max:255|unique:profesores',
            'password' => 'required|min:6|confirmed',
        ]);
    }

    protected function create(array $data)
    {
        return Profesor::create([
            'rut' => $data['rut'],
            'nombre' => $data['nombre'],
            'apellido_paterno' => $data['apellido_paterno'],
            'apellido_materno' => $data['apellido_materno'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

    public function register(ProfesorRequest $request){
        $validator = $this->validator($request->all());

        if ($validator->fails()) {
            $this->throwValidationException(
                $request, $validator
            );
        }

        Auth::guard($this->getGuard())->login($this->create($request->all()));

        return redirect($this->redirectPath());
    }
}
    
asked by Edgardo Escobar 21.02.2017 в 02:58
source

1 answer

0

In AuthProfesorController you end the register method with

return redirect($this->redirectPath());

Under circumstances you defined before

protected $redirectTo = 'profesores/login';

The redirectPath method obeys the value of that Controller property. Try changing it to the route where you want to send a newly logged in user.

    
answered by 21.02.2017 / 17:18
source