WebSAW-LOCAL/app/Http/Controllers/Auth/ForgotPasswordController.php

51 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Mail\PasswordResetVerificationCodeMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
class ForgotPasswordController extends Controller
{ #untuk mengelola proses lupa password, termasuk menampilkan form lupa password dan mengirim kode verifikasi ke email pengguna
public function create()
{
return view('auth.forgot-password');
}
public function store(Request $request)
{
$request->validate([
'email' => ['required', 'email'],
]);
$user = DB::table('users')->where('email', $request->email)->first();
if (!$user) {
return back()->withErrors([
'email' => 'Email tidak ditemukan.',
])->onlyInput('email');
}
$code = (string) random_int(100000, 999999);
DB::table('password_reset_tokens')->updateOrInsert(
['email' => $request->email],
[
'token' => Hash::make($code),
'created_at' => now(),
]
);
Mail::to($request->email)->send(new PasswordResetVerificationCodeMail($code));
return redirect()->route('password.verify', ['email' => $request->email])->with(
'status',
'Kode verifikasi sudah dikirim ke email Anda.'
);
}
}