Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[SOLUCIONADO] Laravel 5 y autenticación de usuarios

Estas en el tema de Laravel 5 y autenticación de usuarios en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Saludos. Estoy haciendo un sistema que requiere autenticación, pero no estoy utilizando el middleware de Laravel 5, sino que estoy haciendo mis propios procesos. Tengo ...
  #1 (permalink)  
Antiguo 17/07/2016, 19:06
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 6 meses
Puntos: 5
Laravel 5 y autenticación de usuarios

Saludos.
Estoy haciendo un sistema que requiere autenticación, pero no estoy utilizando el middleware de Laravel 5, sino que estoy haciendo mis propios procesos.

Tengo la ruta: http://localhost/laravel/public/principal ... antes de ingresar a ella, el usuario debe estar logeado, pero el problema es que si en el navegador pongo directamente la url mencionada, la pagina carga aunque el usuario no haya puesto sus credenciales.

Les pongo los códigos:

routes.php
Código:
Route::get('/', 'WelcomeController@index');
Route::get('logout', 'WelcomeController@logout');
Route::post('login', 'WelcomeController@dologin');

Route::get('principal', array('before' => 'auth', 'uses' => 'WelcomeController@principal'));
WelcomeController.php
Código:
<?php namespace App\Http\Controllers;

use Auth;
use Input;
use Illuminate\Support\Facades\Redirect;

class WelcomeController extends Controller {

	/*
	|--------------------------------------------------------------------------
	| Welcome Controller
	|--------------------------------------------------------------------------
	|
	| This controller renders the "marketing page" for the application and
	| is configured to only allow guests. Like most of the other sample
	| controllers, you are free to modify or remove it as you desire.
	|
	*/

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

	/**
	 * Show the application welcome screen to the user.
	 *
	 * @return Response
	 */
	public function index()
	{
		return view('inicio');
	}
    
    public function principal()
    {
        return view('principal');
    }
    
    public function logout()
    {
        Auth::logout();
        return Redirect::to('/');    
    }
    
    public function dologin()
    {
        if(Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password'))))
        {
            return Redirect::intended('principal');
        }
        else{
            return 'error';
        }
    }

}
Gracias por la ayuda.
  #2 (permalink)  
Antiguo 18/07/2016, 07:03
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años
Puntos: 379
Respuesta: Laravel 5 y autenticación de usuarios

Que versión de Laravel estas usando ? 5.0, 5.1 o 5.2 ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 18/07/2016, 15:37
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 6 meses
Puntos: 5
Respuesta: Laravel 5 y autenticación de usuarios

Versión 5.0
Gracias.
  #4 (permalink)  
Antiguo 19/07/2016, 10:09
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años
Puntos: 379
Respuesta: Laravel 5 y autenticación de usuarios

De entrada tienes que leer el manual de la versión 5.0 porque veo que tienes algunos errores que saltan a la vista
Código PHP:
Ver original
  1. Route::get('principal', array('before' => 'auth', 'uses' => 'WelcomeController@principal'));
No se usa before, si no middleware: https://laravel.com/docs/5.0/authent...tecting-routes
Código PHP:
Ver original
  1. public function __construct()
  2.     {
  3.         $this->middleware('guest');
  4.     }
Con esto le estas indicando que todo el controller acepta usuarios "guest" por eso no requieres validación, si quieres que solo ciertos métodos acepte guest tienes que indicarlo, lee https://laravel.com/docs/5.0/control...ler-middleware
Por ultimo debes de crear un Controller que maneje la autentificación tu estas haciendo todo en uno solo. lee https://es.wikipedia.org/wiki/SOLID
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 19/07/2016, 21:55
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 6 meses
Puntos: 5
Respuesta: Laravel 5 y autenticación de usuarios

Pues si, tenes razón... estaba utilizando conceptos de versiones anteriores... finalmente queda así el routes.php y ya funciona:

Código:
Route::group(['middleware' => 'auth'], function(){
    Route::get('principal', array('uses' => 'WelcomeController@principal'));
    .
    .
    .
});
Gracias por la ayuda.

Etiquetas: auth, controlador, credenciales, laravel, login, rutas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:39.