feat: forget-password & reset-password added

This commit is contained in:
2025-09-13 13:07:18 +03:30
parent 00edec179a
commit b820dd372a
8 changed files with 371 additions and 73 deletions
+50
View File
@@ -18,9 +18,59 @@
use Illuminate\Validation\Rule;
use Laravel\Socialite\Facades\Socialite;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Password;
use Illuminate\Auth\Events\PasswordReset;
class UserController extends Controller
{
public function requestPasswordReset(Request $request)
{
$request->validate([
'email' => 'required|email',
]);
$status = Password::sendResetLink(
$request->only('email')
);
if ($status === Password::RESET_LINK_SENT) {
return response()->json(['message' => __($status)]);
}
return response()->json(['message' => __($status)], 400);
}
public function showResetForm($token)
{
return view('auth.reset-password', ['token' => $token]);
}
public function resetPassword(Request $request)
{
$request->validate([
'email' => 'required|email',
'token' => 'required|string',
'password' => 'required|string|confirmed|min:6',
]);
$status = Password::reset(
$request->only('email', 'password', 'password_confirmation', 'token'),
function ($user, $password) {
$user->forceFill([
'password' => $password,
])->setRememberToken(Str::random(60));
$user->save();
event(new PasswordReset($user));
}
);
if ($status === Password::PASSWORD_RESET) {
return response()->json(['message' => __($status)]);
}
return response()->json(['message' => __($status)], 400);
}
public function login(Request $request)
{
$data = $request->validate([