Como alterar a senha do usuário no Laravel
Enquanto estiver trabalhando no aplicativo, você pode querer alterar rapidamente a senha de um usuário por alguns motivos e você não tem acesso ao banco de dados. Além disso, você não quer ir para o fluxo de esquecimento de senha. Neste artigo, mostro como alterar a senha de um usuário no Laravel sem acessar o banco de dados.
Quando se trata do Laravel, ele vem com uma tabela padrão de ‘usuários’ no banco de dados. Esta tabela é responsável por armazenar os detalhes do usuário, incluindo credenciais como e-mail e senha.
O Laravel usa seu próprio Hashing para criptografar a senha. Para alterar a senha você precisa usar as mesmas técnicas de hashing para criptografia, então só funciona com a autenticação do Laravel.
Alterar a senha do usuário usando a linha de comando
Existem vários recursos que o Laravel inclui em seu núcleo. Ao instalar o Laravel, obtemos todos esses recursos automaticamente. Um deles é o Laravel Tinker, um REPL alimentado pelo pacote PsySH. O Laravel Tinker nos permite interagir com o banco de dados do Laravel, trabalhos, eventos e muito mais.
Podemos usar o Tinker para alterar a senha de um usuário no Laravel. Tudo o que precisamos saber é o endereço de e-mail de um usuário. Portanto, para começar, abra o terminal no diretório raiz do seu projeto.
Entre no ambiente do Tinker executando o comando:
php artisan tinker
Depois de entrar no ambiente Tinker, você terá o controle sobre o Eloquent ORM. Usando o ORM, você pode facilmente alterar a senha do usuário. Digamos que o e-mail do usuário seja ‘ [email protected] ‘, cuja senha precisa ser alterada. A princípio, busque esse usuário por meio de uma instrução:
$user = AppUser::where('email', '[email protected]')->first();
Em seguida, no objeto de usuário, defina a senha usando o Hash::make()
método. Por exemplo, defina a senha como ‘123456’. Portanto, a próxima declaração é:
$user->password = Hash::make('123456');
Finalmente, chame o método save() do Eloquent ORM da seguinte maneira:
$user->save();
Os 3 comandos acima irão alterar a senha de um usuário especificado.
Alterar a senha do usuário no Laravel usando a rota
Você também pode alterar a senha por meio da rota. No entanto, não é recomendado. Estou escrevendo sobre isso, pois essa também é a maneira de alterar a senha. Na função de retorno de chamada da rota, use o mesmo código que usamos no Tinker acima. Ambos fariam o trabalho exato. Vamos declarar uma rota ‘alterar senha’ e passar o código na função de retorno de chamada conforme mostrado abaixo.
rotas / web.php
<?php
Route::get('changepassword', function() {
$user = AppUser::where('email', '[email protected]')->first();
$user->password = Hash::make('123456');
$user->save();
echo 'Password changed successfully.';
});
?>
Agora, execute o URL YOUR_DOMAIN_URL / changepassword no navegador. Ele irá chamar a rota e alterar a senha do usuário. O desenvolvedor deve remover esta rota assim que a senha for alterada.
Artigos relacionados
- Como criar um blog com o Laravel
- Como Criar Honeypot para Combate com Formulário de Spam no Laravel
- Faça backup do aplicativo Laravel no Dropbox