2025-04-23 12:59:57 +03:30

58 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Models\User;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Password;
use Illuminate\Auth\Events\PasswordReset;
use App\Http\Requests\ResetPasswordRequest;
use App\Http\Requests\ForgotPasswordNotificationRequest;
class PasswordController extends Controller
{
public function forgotPasswordPage()
{
return view("auth.forgot-password");
}
public function forgotPasswordNotification(ForgotPasswordNotificationRequest $request)
{
$status = Password::sendResetLink(
$request->only('email')
);
return $status === Password::ResetLinkSent
? back()->with(['status' => __($status)])
: back()->withErrors(['email' => __($status)]);
}
public function resetPasswordPage(Request $request, $token)
{
$data['email'] = $request->email;
$data['token'] = $token;
return view('auth.reset-password', compact('data'));
}
public function resetPassword(ResetPasswordRequest $request)
{
$status = Password::reset(
$request->only('email', 'password', 'password_confirmation', 'token'),
function (User $user, string $password) {
$user->forceFill([
'password' => Hash::make($password)
])->setRememberToken(Str::random(60));
$user->save();
event(new PasswordReset($user));
}
);
return $status === Password::PasswordReset
? redirect()->route('login')->with('status', __($status))
: back()->withErrors(['email' => [__($status)]]);
}
}