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());
}
}