Usando seu próprio driver de autenticação

Usando seu próprio driver de autenticação

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.