Problema
Os drivers de autenticação integrados de Laravel não atendem às suas necessidades.
Solução
Construa o seu próprio e estenda o Laravel.
Etapa 1 - Implementar o UserPronderInterface
Primeiro você deve criar uma classe que lide com a autenticação. Criaremos uma classe boba que validaremos aleatoriamente quaisquer credenciais e 50% do tempo retornará um usuário fictício.
use iluminado \ auth \ genericuser;
use iluminado \ auth \ userInterface;
use iluminado \ auth \ userproviderInterface;
Classe DUMMMYAUTHPROVIDER IMPLEMPLO
/**
* Recuperar um usuário por seu identificador exclusivo.
*
* @param misto $ id
* @return \ iluminate \ auth \ userInterface | null
*/
Função pública recuperada ($ id)
// 50% do tempo retorna nosso usuário fictício
if (mt_rand (1, 100) <= 50)
retornar $ this-> DummyUser ();
// 50% do tempo, falha
retornar nulo;
/**
* Recupere um usuário pelas credenciais fornecidas.
* Não teste senha aqui!
*
* @param Array $ credenciais
* @return \ iluminate \ auth \ userInterface | null
*/
Função pública RecuirrigeByCredentials (Array $ credenciais)
// 50% do tempo retorna nosso usuário fictício
if (mt_rand (1, 100) <= 50)
retornar $ this-> DummyUser ();
// 50% do tempo, falha
retornar nulo;
/**
* Validar um usuário contra as credenciais dadas.
*
* @param \ iluminate \ auth \ userInterface $ user
* @param Array $ credenciais
* @return bool
*/
Função pública ValidAtEcredentials (UserInterface $ User, Array $ CREDENCIALS)
// Vamos assumir se um usuário foi recuperado, é bom
retornar true;
/**
* Devolver um usuário falso genérico
*/
Função protegida DummyUser ()
$ atributos = array (
'id' = 123,
'Nome de usuário' => 'risadas',
'Senha' => \ hash :: Make ('SuperSecret'),
'Nome' => 'Usuário fictício',
);
retornar novo genérico ($ atributos);
/**
* Necessário por Laravel 4.1.26 e acima
*/
Função pública recuperada ($ identificador, $ token)
return new \ exception ('não implementado');
/**
* Necessário por Laravel 4.1.26 e acima
*/
Função pública UpdateMememberToken (UserInterface $ User, $ token)
return new \ exception ('não implementado');
?>
Etapa 2 - estender o componente de autenticação
Em um provedor de serviços ou em aplicativo/start/global.php
Adicione a seguinte linha.
Auth :: Extend ('Dummy', função ($ app)
devolver novas extensões myApp \ \ dummyauthprovider;
);
Etapa 3 - Altere o driver de autenticação.
Editar aplicativo/configuração/auth.PHP e mude o motorista.
'Driver' => 'Dummy',
Discussão
Embora este exemplo seja bobo, ele contém todos os componentes.
Se você adicionar um filtro de autenticação a qualquer uma de suas rotas, 50% das vezes um usuário será autenticado.