%PDF- %PDF-
Direktori : /www/loslex/demo/app/Http/Controllers/Auth/ |
Current File : //www/loslex/demo/app/Http/Controllers/Auth/NewPasswordController.php |
<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Auth\Events\PasswordReset; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Password; use Illuminate\Support\Str; use Illuminate\Validation\Rules; use Illuminate\View\View; class NewPasswordController extends Controller { /** * Display the password reset view. */ public function create(Request $request): View { return view('auth.reset-password', ['request' => $request]); } /** * Handle an incoming new password request. * * @throws \Illuminate\Validation\ValidationException */ public function store(Request $request): RedirectResponse { $loginField = filter_var($request->input('login'), FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; $request->merge([$loginField => $request->input('login')]); $request->validate([ 'token' => ['required'], 'email' => ['required_without:username', 'email', 'exists:users,email'], 'username' => ['required_without:email', 'string', 'exists:users,username'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); // Here we will attempt to reset the user's password. If it is successful we // will update the password on an actual user model and persist it to the // database. Otherwise we will parse the error and return the response. $status = Password::reset( $request->only($loginField, 'password', 'password_confirmation', 'token'), function ($user) use ($request) { $user->forceFill([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ])->save(); event(new PasswordReset($user)); } ); // If the password was successfully reset, we will redirect the user back to // the application's home authenticated view. If there is an error we can // redirect them back to where they came from with their error message. return $status == Password::PASSWORD_RESET ? redirect()->route('login')->with('status', __($status)) : back()->withInput($request->only($loginField)) ->withErrors([$loginField => __($status)]); } }