email = request()->query('email'); $this->token = $token; } public function submit() { $this->validate([ 'token' => 'required', 'email' => 'required|email', 'password' => ['required', 'confirmed', PasswordRule::defaults()], ]); $response = Password::broker()->reset([ 'email' => $this->email, 'password' => $this->password, 'password_confirmation' => $this->password_confirmation, 'token' => $this->token ], fn ($user, $password) => $this->resetPassword($user, $password)); if ($response == Password::PASSWORD_RESET) { $this->dispatch('success', 'Passwort erfolgreich geändert.'); return redirect()->route('home'); } ValidationException::withMessages([ 'password' => 'Passwort konnte nicht geändert werden.', ]); } protected function resetPassword($user, $password) { $user->password = Hash::make($password); $user->setRememberToken(Str::random(60)); $user->save(); event(new PasswordReset($user)); auth()->login($user); } #[Layout('components.layouts.full')] public function render(): string { return <<<'HTML'
Hier kannst du dein Passwort zurücksetzen.
Gebe dafür ein neues Passwort ein.
Merke oder notiere dir dieses Passwort, bevor du das Formular absendest.
Danach wirst du zum Dashboard weitergeleitet.
Passwort zurücksetzen
HTML; } }