Files
newznab-tmux-NNTmux/app/Http/Controllers/Auth/EmailVerificationController.php
T
2026-03-26 10:48:12 +01:00

59 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Auth\Events\Verified;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class EmailVerificationController extends Controller
{
public function show(Request $request): View|RedirectResponse
{
if ($request->user()?->hasVerifiedEmail()) {
return redirect()->route('home');
}
return view('auth.verify-email');
}
public function verify(Request $request, int $id, string $hash): RedirectResponse
{
$user = User::query()->findOrFail($id);
if (! hash_equals($hash, sha1($user->getEmailForVerification()))) {
abort(403);
}
if (! $user->hasVerifiedEmail() && $user->markEmailAsVerified()) {
event(new Verified($user));
}
return redirect()
->route('login')
->with('success', 'Your email address has been verified. You can now sign in.');
}
public function resend(Request $request): RedirectResponse
{
$user = $request->user();
if ($user === null) {
return redirect()->route('login');
}
if ($user->hasVerifiedEmail()) {
return redirect()->route('home');
}
$user->sendEmailVerificationNotification();
return back()->with('status', 'resent');
}
}