Multipla Autenticação
[Concluído]
Boa tarde, estou tentando fazer a multipla autenticação no laravel 5.6 e segui as suas aulas que tem no canal do youtube porém não obtive sucesso, talvez seja porque vc estava usando a versão 5.2. Estou desenvolvendo um ecommerce e preciso também da autenticação dos clientes no site. Eu tenho a autenticação do administrador funcionado mas a do cliente ele verifica se o usuario existe e até redireciona para a rota que foi setada quando o login é realizado, porém, quando tento chamar os dados do usuario do outro guard {{Auth::guard('clientes')->user()}} ele não me retorna nada.. Também estou començando a fazer a integração com o paypal conforme seu curso. Obrigado.
Olá, Kelvin!
Tudo bem?
Se quiser postar o código completo no GitHub, eu posso ter uma ideia melhor do problema e te ajudar com mais precisão.
Tenho um exemplo atualizado, de multi-auth na versão 5.5, veja se ajuda: https://github.com/carlosfgti/laravel55-mult-auth-custom
Dei uma olhada no seu código porém não consegui resolver, se possivel da uma olhada no meu https://github.com/kelvinfer4/laravel-emarket/. Obrigado!!
Kelvin,
O Model é o Cliente (app/Cliente.php), certo?
A implementação dele está correta.
Não cheguei a testar nas versões mais atuais do Laravel, mas nos testes que fiz só permitia customizar o username (email) e não o password.
Vi que você deixou a coluna com o nome de senha e não de password, experimente deixar com o nome de password e me diz se deu certo.
No aguardo.
https://blog.especializati.com.br/como-criar-login-personalzado-laravel/
Sim, o Model é Cliente, realizei a troca mas não resolveu, a minha outra model de autenticação que está funcionando (App/Usuario) também está com o campo password customizado para senha se vc verificar, funciona. Mas o cliente está entrando neste IF e enviando o mesmo para a index, como se estivesse autenticado, porém não exibe os dados do mesmo:
if (Auth::check() || ($cliente && Hash::check($password, $cliente->password))) {
Auth::login($cliente);
return redirect(route('index'));
} else {
return redirect(route('loginUser'));
}
Kelvin,
Baixei o seu projeto, testei e funcionou.
Precisa faz a autenticação especificando o guard, dessa forma:
public function logarCliente(Request $request)
{
$credentials = $request->only('email', 'password');
if ( Auth::guard('clientes')->attempt($credentials) )
return redirect()->route('index');
return redirect()
->route('loginCliente')
->withInput()
->withError(['Dados inválidos!']);
}
Quando precisar recuperar as informações do cliente, também precisa especificar o guard:
Auth::guard('cliente')->user()->name
Carlos, sem palavras para agradescer, estava a dias sem conseguir resolver este problema, muito obrigado, funcionou perfeitamente!!!
agradecer*
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!