ja stworzyliśmy trasy hasło, przeglądanie i metody w [email protected]
i [email protected]
Jak sprawdzić aktualne, nowe i nowe potwierdzenie hasła w Laravel 5?
w tej chwili, gdybym wypełnić pole new_password
, zostaje zakodowane i przekazane do bazy danych poprawnie, wtedy mogę się zalogować z nowym hasłem .
Ale muszę mieć możliwość sprawdzenia poprawności new_password
i new_password_confirm
, aby upewnić się, że są takie same i potwierdzić aktualne hasło użytkownika.
Jak mogę to zrobić?
EDYCJA: Dodałem $this->validate
do metody, ale teraz nadal otrzymuję błąd The password confirmation confirmation does not match.
, mimo że pasują one, ponieważ używam prostego hasła. Myślę również, że muszę ręcznie sprawdzić bieżące hasło, ponieważ validator
nie zrobi tego za mnie.
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();
}
A to jest widok
<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>
Dziękuję za tych przydatnych wskazówek. Używałem 'potwierdzenie' zamiast' same: new_password' - po prostu zmieniłem to i zadziałało. I będę używał 'Hash :: check()' do sprawdzania aktualnego hasła. – Halnex
Cieszę się, że pomogło :) – Sid
Kolejna dobra sztuczka do użycia w polu potwierdzenia: "potwierdzona" zasada walidacji <[link] (https://laravel.com/docs/5.4/validation#rule-confirmed)>. Twoja aktualna reguła to tylko jedna linia, na przykład: '' new_password '=>' required | confirmed''. A nazwa pola potwierdzającego powinna być "new_password_confirmation". – Corner