Problema
Los controladores de autenticación incorporados de Laravel no se ajustan a sus necesidades.
Solución
Construye el tuyo y extiende Laravel.
Paso 1: implementar userProviderInterface
Primero debe crear una clase que maneje la autenticación. Crearemos una clase tonta que validará aleatoriamente cualquier credencial y el 50% del tiempo devuelva a un usuario ficticio.
use iluminate \ auth \ Genericuser;
use Illuminate \ Auth \ UserInterface;
use Illuminate \ Auth \ UserProviderInterface;
clase DummyauthProvider implementa UserProviderInterface
/**
* Recuperar a un usuario por su identificador único.
*
* @param mixto $ id
* @return \ iluminate \ auth \ userInterface | NULL
*/
Función pública RemieveById ($ ID)
// El 50% del tiempo devuelve nuestro usuario ficticio
if (mt_rand (1, 100) <= 50)
devolver $ this-> dummyUser ();
// 50% del tiempo, falla
regresar nulo;
/**
* Recuperar a un usuario por las credenciales dadas.
* No pruebe la contraseña aquí!
*
* @param matriz $ credenciales
* @return \ iluminate \ auth \ userInterface | NULL
*/
Función pública RemileByCredentials (matriz $ credenciales)
// El 50% del tiempo devuelve nuestro usuario ficticio
if (mt_rand (1, 100) <= 50)
devolver $ this-> dummyUser ();
// 50% del tiempo, falla
regresar nulo;
/**
* Validar a un usuario contra las credenciales dadas.
*
* @param \ iluminate \ auth \ UserInterface $ user
* @param matriz $ credenciales
* @return bool
*/
Función pública ValidateCredentials (userInterface $ user, array $ credenciales)
// Asumiremos que si se recuperó un usuario, es bueno
devolver verdadero;
/**
* Devuelve un usuario falso genérico
*/
función protegida DummyUser ()
$ atributos = array (
'id' = 123,
'Nombre de usuario' => 'Risas',
'Password' => \ Hash :: Make ('SuperSecret'),
'Nombre' => 'Usuario ficticio',
);
devolver nuevo genicuser ($ atributos);
/**
* Necesito por Laravel 4.1.26 y más
*/
Función pública RemieVebyToken ($ identificador, $ token)
devolver nuevo \ excepción ('no implementado');
/**
* Necesito por Laravel 4.1.26 y más
*/
Función pública UpdaterAmemberToken (Interface de usuario $ user, $ token)
devolver nuevo \ excepción ('no implementado');
?>
Paso 2 - Extienda el componente de autores
En un proveedor de servicios o en aplicación/inicio/global.php
Agregue la siguiente línea.
Auth :: extend ('dummy', function ($ app)
devolver nuevo MyApp \ Extensions \ DummyauthProvider;
);
Paso 3 - Cambie el controlador de autenticación.
Editar aplicación/config/auth.PHP y cambiar el controlador.
'Driver' => 'Dummy',
Discusión
Aunque este ejemplo es tonto, contiene todos los componentes.
Si agrega un filtro de autenticación a cualquiera de sus rutas, el 50% del tiempo un usuario será autenticado.