diff --git a/app/Http/Controllers/UserAuthController.php b/app/Http/Controllers/UserAuthController.php index 256f98a..9d407b2 100644 --- a/app/Http/Controllers/UserAuthController.php +++ b/app/Http/Controllers/UserAuthController.php @@ -6,76 +6,48 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth; use App\Models\User; +use Illuminate\Support\Facades\Log; class UserAuthController extends Controller { - public function refreshToken() - { - \Log::info('🔄 refreshToken() called'); +public function refreshToken() +{ + Log::info('🔄 [JWT-REFRESH] called'); - try { - // Get current token - $currentToken = JWTAuth::getToken(); + try { + $newToken = JWTAuth::parseToken()->refresh(); - if (!$currentToken) { - \Log::warning('⚠ No token provided in refreshToken()'); - return response()->json([ - 'success' => false, - 'message' => 'Token not provided', - ], 401); - } + Log::info('✅ [JWT-REFRESH] Token refreshed'); - \Log::info('📥 Current Token:', ['token' => (string) $currentToken]); + return response()->json([ + 'success' => true, + 'token' => $newToken, + ]); - // Try refreshing token - $newToken = JWTAuth::refresh($currentToken); + } catch (\PHPOpenSourceSaver\JWTAuth\Exceptions\TokenExpiredException $e) { + Log::warning('⛔ [JWT-REFRESH] Refresh TTL expired'); - \Log::info('✅ Token refreshed successfully', ['new_token' => $newToken]); + return response()->json([ + 'success' => false, + 'message' => 'Refresh expired. Please login again.', + ], 401); - return response()->json([ - 'success' => true, - 'token' => $newToken, - ]); + } catch (\Exception $e) { + Log::error('🔥 [JWT-REFRESH] Exception', [ + 'error' => $e->getMessage(), + ]); - } catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) { - \Log::error('❌ TokenExpiredException in refreshToken()', [ - 'message' => $e->getMessage(), - ]); - return response()->json([ - 'success' => false, - 'message' => 'Token expired, cannot refresh.', - ], 401); - - } catch (\Tymon\JWTAuth\Exceptions\TokenInvalidException $e) { - \Log::error('❌ TokenInvalidException in refreshToken()', [ - 'message' => $e->getMessage(), - ]); - return response()->json([ - 'success' => false, - 'message' => 'Invalid token.', - ], 401); - - } catch (\Tymon\JWTAuth\Exceptions\JWTException $e) { - \Log::error('❌ JWTException in refreshToken()', [ - 'message' => $e->getMessage(), - ]); - return response()->json([ - 'success' => false, - 'message' => 'Could not refresh token.', - ], 401); - - } catch (\Exception $e) { - \Log::error('❌ General Exception in refreshToken()', [ - 'message' => $e->getMessage(), - 'trace' => $e->getTraceAsString(), - ]); - return response()->json([ - 'success' => false, - 'message' => 'Unexpected error while refreshing token.', - ], 500); - } + return response()->json([ + 'success' => false, + 'message' => 'Unable to refresh token.', + ], 401); } +} + + + + /** * User Login diff --git a/config/jwt.php b/config/jwt.php index 50d2e2a..fcaf30a 100644 --- a/config/jwt.php +++ b/config/jwt.php @@ -89,7 +89,7 @@ return [ | */ - 'ttl' => (int) env('JWT_TTL', 86400), + 'ttl' => (int) env('JWT_TTL', 15), /* |-------------------------------------------------------------------------- @@ -108,7 +108,7 @@ return [ | */ - 'refresh_ttl' => (int) env('JWT_REFRESH_TTL', 129600), + 'refresh_ttl' => (int) env('JWT_REFRESH_TTL', 60), /* |-------------------------------------------------------------------------- diff --git a/public/invoices/invoice-INV-2025-000030.pdf b/public/invoices/invoice-INV-2025-000030.pdf index 605f767..2f12f72 100644 Binary files a/public/invoices/invoice-INV-2025-000030.pdf and b/public/invoices/invoice-INV-2025-000030.pdf differ diff --git a/public/profile_upload/profile_1765625223.jpg b/public/profile_upload/profile_1765625223.jpg deleted file mode 100644 index c6978fa..0000000 Binary files a/public/profile_upload/profile_1765625223.jpg and /dev/null differ diff --git a/public/profile_upload/profile_1766120292.jpg b/public/profile_upload/profile_1766120292.jpg new file mode 100644 index 0000000..3923309 Binary files /dev/null and b/public/profile_upload/profile_1766120292.jpg differ diff --git a/routes/api.php b/routes/api.php index 9cde001..8cb2ed3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,8 +19,11 @@ Route::post('/signup-request', [RequestController::class, 'usersignup']); //login / logout Route::post('/user/login', [UserAuthController::class, 'login']); + +Route::post('/auth/refresh', [UserAuthController::class, 'refreshToken']); + + Route::middleware(['auth:api'])->group(function () { - //Route::post('/user/refresh', [UserAuthController::class, 'refreshToken']); Route::post('/user/logout', [UserAuthController::class, 'logout']); diff --git a/routes/web.php b/routes/web.php index c2a011a..3489b9f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,6 +35,10 @@ Route::prefix('admin')->middleware('web')->group(function () { }); +Route::get('/login', function () { + return redirect()->route('admin.login'); +})->name('login'); +