Olá galera,
O Laravel, por padrão, utiliza os campos username e password para autenticação. Dessa forma, nós podemos utilizar o método Auth::attempt sem que seja necessário fazer nenhuma alteração.
Agora supondo que a nossa tabela utilize campos como email e senha, quais alterações precisam ser feitas para que o método Auth::attempt passe a funcionar?
A primeira delas deve ser feita no seu model de usuário, onde é implementado o método getAuthPassword com o meu atributo.
public function getAuthPassword() { return $this->senha; }
Abaixo eu implementei um método, no controller de usuário, chamado validate que será chamado quando um formulário de login foi submetido.
public function validate() { $user = array( 'email' => Input::get('email'), 'password' => Input::get('senha'), 'ativo' => 1 ); if (Auth::attempt($user, false)) { echo 'Logado com sucesso!'; } else { echo 'Não foi possível efetuar o login.'; } }
Note que o segredo está no campo da senha. A chave que eu utilizo no array tem que ser exatamente password. Os demais parâmetros terão que ser o nome dos nossos campos na tabela de usuários. Inclusive podem ser passados vários atributos para serem validados como foi o caso do ativo.
Fica aí a dica. Grande abraço