feat: verify email

This commit is contained in:
2026-05-20 20:40:23 +02:00
parent 75b2743e75
commit 7892fb9a02
16 changed files with 495 additions and 9 deletions
+11 -4
View File
@@ -13,10 +13,17 @@ use Illuminate\Support\Facades\Route;
Route::prefix('auth')->group(function (): void {
Route::post('register', [AuthController::class, 'register']);
Route::post('login', [AuthController::class, 'login']);
Route::get('email/verify/{id}/{hash}', [AuthController::class, 'verifyEmail'])
->middleware(['signed', 'throttle:6,1'])
->name('verification.verify');
Route::middleware('auth:sanctum')->group(function (): void {
Route::post('logout', [AuthController::class, 'logout']);
Route::get('me', [AuthController::class, 'me']);
Route::patch('me', [AuthController::class, 'update']);
Route::post('email/verification-notification', [AuthController::class, 'sendVerificationEmail'])
->middleware('throttle:6,1')
->name('verification.send');
Route::patch('me', [AuthController::class, 'update'])->middleware('verified');
Route::delete('me', [AuthController::class, 'destroy']);
});
@@ -26,14 +33,14 @@ Route::prefix('auth')->group(function (): void {
Route::get('/health', function () {
return response()->json(['status' => 'ok']);
});
Route::middleware('auth:sanctum')->group(function (): void {
Route::middleware(['auth:sanctum', 'verified'])->group(function (): void {
Route::post('device-tokens', [DeviceTokenController::class, 'store']);
Route::delete('device-tokens', [DeviceTokenController::class, 'destroy']);
Route::get('test-notifs', [DeviceTokenController::class, 'notifs']);
});
// Workouts
Route::middleware('auth:sanctum')->group(function (): void {
Route::middleware(['auth:sanctum', 'verified'])->group(function (): void {
Route::get('workouts', [WorkoutSessionController::class, 'index'])->name('workouts.index');
Route::post('workouts', [WorkoutSessionController::class, 'store'])->name('workouts.store');
Route::get('strava/status', [StravaController::class, 'status'])->name('strava.status');
@@ -43,7 +50,7 @@ Route::middleware('auth:sanctum')->group(function (): void {
});
// Meals
Route::middleware('auth:sanctum')->group(function (): void {
Route::middleware(['auth:sanctum', 'verified'])->group(function (): void {
Route::get('meal-posts/stats', [MealPostController::class, 'stats']);
Route::get('meal-posts/calendar', [MealPostController::class, 'calendar']);
Route::post('meal-posts/analyze-image', [MealImageAnalysisController::class, 'store']);