io ho creato il percorso della password, visualizzare e metodo nella [email protected]
e [email protected]
Come convalidare la conferma della password corrente, nuova e nuova in Laravel 5?
Al momento, se compilo il campo new_password
, ottiene hash e sottoposto al database in modo corretto, allora posso effettuare il login con la nuova password .
Ma devo essere in grado di convalidare lo new_password
e new_password_confirm
per verificare che siano uguali e convalidare anche la password corrente dell'utente.
Come posso farlo?
MODIFICA: ho aggiunto $this->validate
al metodo, ma ora continuo a ricevere l'errore The password confirmation confirmation does not match.
anche se corrispondono mentre sto usando una password semplice. Inoltre, penso che ho bisogno di verificare la password corrente manualmente come validator
non lo farà per me.
public function getProfilePassword(Request $request) {
return view('profile/password', ['user' => Auth::user()]);
}
public function postProfilePassword(Request $request) {
$user = Auth::user();
$this->validate($request, [
'old_password' => 'required',
'password' => 'required|min:4',
'password_confirmation' => 'required|confirmed'
]);
$user->password = Hash::make(Input::get('new_password'));
$user->save();
}
E questa è la vista
<form action="{{ route('profile/updatepassword') }}" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="name">Current Password</label>
<input type="password" name="old_password" class="form-control" id="old_password">
</div>
<div class="form-group">
<label for="name">Password</label>
<input type="password" name="password" class="form-control" id="password">
</div>
<div class="form-group">
<label for="name">New Password</label>
<input type="password" name="password_confirmation" class="form-control" id="password_confirmation">
</div>
<button type="submit" class="btn btn-primary">Change Password</button>
<input type="hidden" value="{{ Session::token() }}" name="_token">
</form>
Grazie per questi suggerimenti utili. Stavo usando 'confirmation' invece di' same: new_password' - l'ho appena cambiato e ha funzionato. E userò il 'Hash :: check()' per convalidare la password corrente. – Halnex
contento che abbia aiutato :) – Sid
Un altro buon trucco da utilizzare nel campo di conferma: la regola di convalida 'confermata' <[link] (https://laravel.com/docs/5.4/validation#rule-confirmed)>. La tua regola attuale sarebbe solo una riga, come questa: ''new_password' => 'richiesto | confermato''. E il nome del campo di conferma dovrebbe essere 'new_password_confirmation'. – Corner