One Hat Cyber Team
Your IP :
216.73.216.84
Server IP :
50.6.229.107
Server :
Linux server.hostburly.com 5.14.0-611.38.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 10 17:21:28 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
andjemzt
/
niqs_api
/
routes
/
View File Name :
api.php
<?php use App\Http\Controllers\Api\UserProfileController; use Illuminate\Support\Facades\Route; use Illuminate\Http\Request; use App\Http\Controllers\Api\AuthController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\Api\LocationController; // ============================= // Public Routes (no login required) // ============================= Route::prefix('auth')->group(function () { Route::post('/control', [AuthController::class, 'register']); Route::post('/login', [AuthController::class, 'login']); }); Route::middleware('auth:sanctum')->group(function () { Route::get('/profile', [UserProfileController::class, 'show']); Route::post('/profile/update', [UserProfileController::class, 'update']); Route::get('/profile/meta', [UserProfileController::class, 'meta']); }); Route::get('/auth/me', [AuthController::class, 'me'])->middleware('auth:sanctum'); Route::post('/auth/email/resend', [AuthController::class, 'resendVerification']) ->middleware('auth:sanctum'); // ✅ verification link endpoint (public) Route::get('/auth/email/verify/{id}/{hash}', [AuthController::class, 'verifyEmail']) ->name('verification.verify'); Route::post('/auth/forgot-password', [AuthController::class, 'forgotPassword']); Route::post('/auth/reset-password', [AuthController::class, 'resetPassword']); // Change password (authenticated) Route::post('/auth/change-password', [AuthController::class, 'changePassword']) ->middleware('auth:sanctum'); // ============================= // Protected Routes (requires authentication) // ============================= Route::middleware('auth:sanctum')->get('/notifications', function (Request $request) { return response()->json($request->user()->notifications); }); Route::middleware(['auth:sanctum'])->group(function () { // routes/api.php Route::get('/debug-auth', function (Request $request) { return response()->json([ 'has_header' => $request->hasHeader('Authorization'), 'header_value' => substr($request->header('Authorization'), 0, 15) . '...', 'user_found' => auth('sanctum')->check(), 'app_key_hash' => md5(config('app.key')), ]); }); // ✅ Logged-in user info (basic) Route::get('/user', function (Request $request) { $user = $request->user()->load('roles', 'permissions'); return response()->json([ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'type' => $user->type ?? null, 'roles' => $user->roles->pluck('name'), 'permissions' => $user->getAllPermissions()->pluck('name'), ]); }); // ✅ Full profile controller (if you want extended data) // Route::get('/profile', [ProfileController::class, 'profile']); // ✅ Logout Route::post('/logout', [AuthController::class, 'logout']); // ============================= // 🔒 Role & Permission-Based Examples // ============================= // Only users with 'admin' role Route::middleware(['role:admin'])->group(function () { Route::get('/admin/dashboard', function () { return response()->json(['message' => 'Welcome Admin!']); }); }); // Only users with 'manage users' permission Route::middleware(['permission:manage users'])->group(function () { Route::get('/users/manage', function () { return response()->json(['message' => 'You can manage users.']); }); }); // Either has a role or a permission Route::middleware(['role_or_permission:moderator|edit posts'])->group(function () { Route::get('/posts/edit', function () { return response()->json(['message' => 'You can edit posts.']); }); }); }); // routes/api.php Route::middleware('auth:sanctum')->get('/me/access', function (Request $request) { $user = $request->user(); return response()->json([ 'user' => [ 'id' => $user->id, 'whois' => $user->whois, 'roles' => $user->getRoleNames(), 'permissions' => $user->getAllPermissions()->pluck('name'), ] ]); }); // routes/api.php Route::prefix('v1')->group(function () { Route::get('/states', [LocationController::class, 'states']); Route::get('/states/{state}/lgas', [LocationController::class, 'lgas']); }); // ============================= // Public Health Check // ============================= Route::get('/health', function () { return response()->json(['status' => 'ok']); });