Hacer Login en laravel (MUY IMPORTANTE)

4
Average: 4 (3 votes)
Loguearse a un sistema es algo siempre un poco complicado para hacer. En laravel es muy sencillo siempre y cuando claro está se cumpla con todo lo especificado aca en este ejemplo.

TABLA USERS
Como sabes la tabla users debe permanecer intacta para que esto funcione correctamente pues laravel posee una clase Auth que se encarga de hacer todo solo pero trabaja con esta tabla por ello que esta tabla siempre debe ser asi.

Vista
En la vista pongamos dos campos sencillos uno de usuario y otro de password o clave como le llames..
... Codigo html o blade anterior,...

<p>
                                    @if(isset($error_auth))
                                    <strong style='color: Red'>{{$error_auth}}</strong>
                                    @endif
                                </p>

{{Form::open(array('route'=>'entrar','autocomplete'=>'off'))}}

                                    <input type="text" name="usuario" title="Nombre de usuario"
                                      placeholder="Entre su nombre de usuario" autofocus="true">                
                                <br>
                                    {{form::password('clave',array(
                                    'title'=>'Contrase&ntilde;a',
                                    'placeholder'=>'Entre su contrase&ntilde;a',
                                    'autocomplete'=>'off'
                                    ))}}
                                </div>
                                {{form::hidden('hidden',1)}}
                                {{form::button('Entrar',array(
                                'type'=>'submit'
                                ))}}
                                {{Form::close()}}
... Fin de html o blade...

Como puedes ver existen los campos usuario y clave los cuales son los que se verificarán si son correctos para autenticar etc.
y arriba arriba una validación esto se cumple si no son correctos los datos de autenticacion...

Route
Route::any('entrar',['as'=>'entrar','uses'=>'login@inicio']);

Controller
class login extends BaseController
{
    public function inicio()
    {
        if (Request::method() == "POST") {
                     $credenciales = [
                    "username" => Input::get('usuario'),
                    "password" => Input::get('clave'),
                ];
                if (Auth::attempt($credenciales)) {
                        return Redirect::intended('/');
                    }
                } else {
                    $datos['error_auth'] = "Usuario o contrase&ntilde;a incorrectos";
                    return View::make('login.index', $datos);
                }
        } else
            return View::make('login.index');
    }
}
Como puedes ver es muy sencillo
con un array diciendo los campos que quieres verificar en la base de datos ya es suficiente con la funcion Auth::attemp($credenciales) laravel se encarga de verificar si son correctos los campos uy con la sentencia return Redirect::intended('/'); lo que hjace es redireccionar a la ruta con nombre '/' pero ya autenticado es decir ya laravel sabe esto, para desloguear seria sencillamente Auth::logout() y ya el usuario se desloguea del sistema.

Espero esto sirva de ayuda, recuerde siempre que la parte de validaciones de campos y eso, son otros temas pero es sencillo no se preocupe.. laravel es muy sencillo

Atentamente...
Categoría: