GuilhermeBenitesBefore / begaming

MIT License
9 stars 11 forks source link

[NEW] Envia email recuperacao de senha #9

Open GabrielBittar opened 4 years ago

GabrielBittar commented 4 years ago

Este é um WIP para o botão "Esqueceu a senha?", que atualmente está bugado, retornando uma tela de erro. Ele, naturalmente, é caminho para solicitar uma nova senha, então fiz um e-mail para a recuperação da senha. Do aspecto visual noto de cara que seria interessante um front-end que, em outra branch, se propusesse a colocar o logo do BeGaming disposto no Figma pelo William no header do e-mail, ficaria bem legal.

A princípio está fixado no código como exemplo um nome e e-mail de usuário. Pretendo agora fazer o backend para validar dinamicamente o usuário que solicitar e fazer a troca da senha.

Para testar essa funcionalidade é preciso configurar o .env assim:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=begaming
DB_USERNAME=root
DB_PASSWORD=

e o mail.php assim:

    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'SEU GMAIL AQUI),
        'name' => env('MAIL_FROM_NAME', 'SEU NOME AQUI'),
    ],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),

Ah, é preciso ainda ativar o acesso a aplicativos menos seguros no Gmail para fazer uso da conta nesse caso, marcando o botão de permissão aqui: https://myaccount.google.com/lesssecureapps

O correto, imagino, é que o aplicativo em produção tenha as credenciais oficiais de servidor etc., então não estou enviando esses dois arquivos.

Segue imagem do e-mail:

image

Obs.: Pretendo colocar essa recuperação de senha em outra PR, deixar esta apenas para o e-mail, mas vou finalizar aqui quando tiver a rota da recuperação pronta e o e-mail estiver, então, de fato pronto.

03/03:

Adicionado funcionamento para o botão "Esqueceu a senha?": está disparando o e-mail mostrado acima para o endereço inserido pelo usuário.

image

12/03:

Estudando, percebi que poderia corrigir aquele Frankenstein que eu estava desenvolvendo do zero e usar simplesmente os caminhos nativos de ResetPassword do Laravel. O problema da aplicação atualmente é que esse caminho estava bugado por conta de ele considerar a rota principal como "/home", e não como "/". Corrigido isto, a troca de senha funciona sem mais problemas. Agora estou traduzindo, e preservei esse novo layout de e-mail também, que consta acima.

--> OK! Corrigido e funcionando corretamente, testei e consegui resetar minha senha diferentes vezes. Usando caminho nativo. Talvez para testar seja preciso adicionar nas configs do app a porta que se está usando no link do app, ou alterar isto no link que é enviado no e-mail, adicionando a porta. Não enviei isso porque varia, e o resultado final deve estar de acordo com o link DO BeGaming.