3
respostas

Reset Senha Laravel

Como eu posso melhorar esse código, ao chegar a solicitação de redefinir senha no e-mail gostaria que automaticamente o sistema já saber o e-mail pra não precisar digitar novamente o e-mail depois que usuário clica no link

Segue o código

------ Reset.blade.php ------------

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class = "row"></div><br><br>
                <div class="panel-heading">Redefinir Senha</div>

                <div class="panel-body">
                    @if (session('status'))
                        <div class="alert alert-success">
                            {{ session('status') }}
                        </div>
                    @endif

                    <form class="form-horizontal" role="form" method="POST" action="{{ url('/password/reset') }}">
                        {{ csrf_field() }}

                        <input type="hidden" name="token" value="{{ $token }}">

                        <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                            <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control" name="email" value="{{ $email or old('email') }}" required autofocus>

                                @if ($errors->has('email'))
                                    <span class="help-block">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                            <label for="password" class="col-md-4 control-label">Password</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control" name="password" required>

                                @if ($errors->has('password'))
                                    <span class="help-block">
                                        <strong>{{ $errors->first('password') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}">
                            <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
                            <div class="col-md-6">
                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>

                                @if ($errors->has('password_confirmation'))
                                    <span class="help-block">
                                        <strong>{{ $errors->first('password_confirmation') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="col-md-6 col-md-offset-4">
                                <button type="submit" class="btn btn-primary">
                                    Redefinir Senha
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

------ config/mail.php -----------

 'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'suporte@teste.com'),
        'name' => env('MAIL_FROM_NAME', 'Support'),
    ],

.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost:8000

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=suporte@teste.com
MAIL_PASSWORD=********************
MAIL_ENCRYPTION=tls


PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
3 respostas

Olá, Elyton

Por que o usuário deve informar o e-mail na redefinição de senha? Testei na Alura e como nos outros serviços que uso e somente a senha e como você fez, escrever a senha pela segunda vez para confirmar. Portanto, somente 2 campos.

Você está salvando no banco de dados as redefinições de senha executadas? Salva lá o token gerado e o tempo de expiração? Poderia salvar também o e-mail. Quando acessar a página de redefinição você pega o token valida se não está expirado e também encontra o e-mail. Aí é só preencher o input na view.

Abraço,

Tipo eu tiro o campo email só que ele não salva só da refresh na página

Como faz com que o email da pessoa já apareça no campo email automaticamente ?