You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
56 lines
1.4 KiB
56 lines
1.4 KiB
<?php |
|
|
|
namespace App\Http\Controllers; |
|
|
|
use Illuminate\Auth\Events\Registered; |
|
use Illuminate\Http\Request; |
|
use App\Models\User; |
|
use Illuminate\Support\Facades\Auth; |
|
use Illuminate\Foundation\Auth\EmailVerificationRequest; |
|
|
|
class RegisterController extends Controller |
|
{ |
|
public function index() |
|
{ |
|
return view('auth.register'); |
|
} |
|
|
|
public function register() |
|
{ |
|
request()->validate([ |
|
'username' => 'required|unique:users', |
|
'email' => 'required|email|unique:users', |
|
'password' => 'required|min:4|max:20', |
|
]); |
|
|
|
$user = User::create([ |
|
'username' => request('username'), |
|
'name' => request('name'), |
|
'email' => request('email'), |
|
'description' => request('description'), |
|
'password' => request('password'), |
|
]); |
|
|
|
event(new Registered($user)); |
|
|
|
Auth::login($user); |
|
return redirect('/email/verify'); |
|
} |
|
|
|
public function verifyEmail() |
|
{ |
|
return view('auth.verify_email'); |
|
} |
|
|
|
public function emailVerification(EmailVerificationRequest $request) |
|
{ |
|
$request->fulfill(); |
|
return redirect('/'); |
|
} |
|
|
|
public function sendEmailVerification() |
|
{ |
|
request()->user()->sendEmailVerificationNotification(); |
|
return back()->withErrors([ 'messages' => 'Verification link sent!' ]); |
|
} |
|
}
|
|
|