TKK_E32211395/website/app/Http/Controllers/RegisterController.php

54 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Mail;
use App\Mail\VerifyMail;
use App\Http\Controllers\Controller;
class RegisterController extends Controller
{
public function create()
{
return view('Registrasi.index', [
'title' => 'Registrasi'
]);
}
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|alpha_dash|max:255|unique:users,name',
'username' => 'required|alpha_dash|max:255|unique:users,username',
'email' => 'required|email|max:255|unique:users,email',
'password' => 'required|min:6|confirmed',
]);
$user = User::create([
'name' => $validatedData['name'],
'username' => $validatedData['username'],
'email' => $validatedData['email'],
'password' => bcrypt($validatedData['password']),
'status' => 0,
]);
// Generate verification URL
$verificationUrl = URL::temporarySignedRoute(
'verification.verify',
now()->addMinutes(60),
['id' => $user->id, 'hash' => sha1($user->email)]
);
// Send verification email
Mail::to($user->email)->send(new VerifyMail($user, $verificationUrl));
// Redirect to email verification notice page
return redirect()->route('login')->with('success', 'Akun berhasil dibuat. Silakan verifikasi email Anda sebelum login.');
}
}