Admin password change in laravel
//password change
Route::get('/admin/change-password', [AuthController::class, 'showChangePasswordForm'])->name('admin.change-password');
Route::post('/admin/change-password', [AuthController::class, 'updatePassword'])->name('admin.update-password');
// Show change password form
public function showChangePasswordForm()
{
return view('admin.change-password');
}
// Handle password update request
public function updatePassword(Request $request)
{
$validator = Validator::make($request->all(), [
'current_password' => 'required',
'new_password' => 'required|min:6|confirmed',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator);
}
$admin = Auth::guard('admin')->user();
if (!Hash::check($request->current_password, $admin->password)) {
return redirect()->back()->with('error', 'Current password is incorrect');
}
$admin->password = Hash::make($request->new_password);
$admin->save();
return redirect()->back()->with('success', 'Password changed successfully');
}
}
//change-password.blade.php code
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">Change Password</div>
<div class="card-body">
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
<form method="POST" action="{{ route('admin.update-password') }}">
@csrf
<div class="form-group">
<label for="current_password">Current Password</label>
<input type="password" name="current_password" class="form-control" required>
@error('current_password')
<span class="text-danger">{{ $message }}</span>
@enderror
</div>
<div class="form-group mt-3">
<label for="new_password">New Password</label>
<input type="password" name="new_password" class="form-control" required>
@error('new_password')
<span class="text-danger">{{ $message }}</span>
@enderror
</div>
<div class="form-group mt-3">
<label for="new_password_confirmation">Confirm New Password</label>
<input type="password" name="new_password_confirmation" class="form-control" required>
</div>
<div class="form-group mt-4">
<button type="submit" class="btn btn-primary">Update Password</button>
</div>
</form>
</div>
</div>
</div>
</div>
No comments