forum icon indicating copy to clipboard operation
forum copied to clipboard

Trocar campo de Autenticação Laravel 5.4

Open evandrorisso opened this issue 7 years ago • 7 comments

Descrição Geral do Problema

Problema Encontrado

Estou tentando trocar o padrão de autenticação do laravel 5.4 do campo e-mail para usuario.


Abordagem

Após ver a documentação achei uma opção de usar a function:

public function username()
{
    return 'username';
}

Porém ao realizar essa opção o mesmo não consegue logar no sistema, nem com o e-mail e nem com o usuario, qual procedimento posso realizar?


Atualização 1

Se precisar atualizar a sua pergunta, adicione seções como essa.


Solução

Se o problema foi resolvido, adicione uma seção de solução como essa

evandrorisso avatar May 17 '17 21:05 evandrorisso

você quer substituir a opção de login padrão de email ou poder utilizar as duas opções? Dá uma olhada: http://laraveldaily.com/auth-login-with-username-instead-of-email/

gabrieldesousah avatar May 19 '17 13:05 gabrieldesousah

ah, para sobrescrever a função padrão public function username() { return 'email'; }

para a função: public function username() { return 'username'; }

Você precisa criar um migration especificando corretamente a tabela username. Fez isso?

gabrieldesousah avatar May 19 '17 13:05 gabrieldesousah

Obrigado pela resposta.

Eu tenho uma tabela especifica de usuarios, na model eu coloquei a tabela

protected $table = "usuarios";

ai se eu usar o padrão do laravel por e-mail consigo fazer o login corretamente. Porém quando criei essa tabela não deixei o e-mail como unique assim tenho vários e-mails repetidos. O unico campo que está como unique é o usuario. Ao realizar a troca da função colocando o return como usuario o sistema não apresenta nenhum erro, porém retorna a tela de login.

Tentei fazer os procedimentos do anexo, mas não funcionou, acho também devido a versão do laravel que foi usada no exemplo não é a mesma

evandrorisso avatar May 19 '17 15:05 evandrorisso

@evandrorisso Segue um gist com um exemplo bem básico mas funcional feito no laravel 5.4

DiegoJG avatar Aug 09 '17 13:08 DiegoJG

Olá, e como ficaria a recuperação de senha. Por padrão o laravel busca o campo email na tabela reset_passwords como trocar para login?

thigas88 avatar Apr 16 '18 18:04 thigas88

@thigas88 resolvi esse problema a uns anos atrás, veja se te ajuda: https://stackoverflow.com/questions/29268071/how-to-make-a-restful-password-reminder-and-change-user-email-field-to-username/29268800#29268800

Maykonn avatar Apr 16 '18 18:04 Maykonn

Vlw @Maykonn ajudou de mais aqui cara. Mas o que eu queria efetivamente era mudar o campo email da tabela reset_passwords para login. Meu objeto usuário não tem o campo email, está no objeto pessoa associado, mas usando a função consigo buscar o email da pessoa e retornar.

thigas88 avatar Apr 17 '18 12:04 thigas88