download option in invoide
This commit is contained in:
@@ -6,77 +6,49 @@ use Illuminate\Http\Request;
|
|||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
|
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class UserAuthController extends Controller
|
class UserAuthController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function refreshToken()
|
public function refreshToken()
|
||||||
{
|
{
|
||||||
\Log::info('🔄 refreshToken() called');
|
Log::info('🔄 [JWT-REFRESH] called');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Get current token
|
$newToken = JWTAuth::parseToken()->refresh();
|
||||||
$currentToken = JWTAuth::getToken();
|
|
||||||
|
|
||||||
if (!$currentToken) {
|
Log::info('✅ [JWT-REFRESH] Token refreshed');
|
||||||
\Log::warning('⚠ No token provided in refreshToken()');
|
|
||||||
return response()->json([
|
|
||||||
'success' => false,
|
|
||||||
'message' => 'Token not provided',
|
|
||||||
], 401);
|
|
||||||
}
|
|
||||||
|
|
||||||
\Log::info('📥 Current Token:', ['token' => (string) $currentToken]);
|
|
||||||
|
|
||||||
// Try refreshing token
|
|
||||||
$newToken = JWTAuth::refresh($currentToken);
|
|
||||||
|
|
||||||
\Log::info('✅ Token refreshed successfully', ['new_token' => $newToken]);
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'token' => $newToken,
|
'token' => $newToken,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
} catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
|
} catch (\PHPOpenSourceSaver\JWTAuth\Exceptions\TokenExpiredException $e) {
|
||||||
\Log::error('❌ TokenExpiredException in refreshToken()', [
|
Log::warning('⛔ [JWT-REFRESH] Refresh TTL expired');
|
||||||
'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([
|
return response()->json([
|
||||||
'success' => false,
|
'success' => false,
|
||||||
'message' => 'Invalid token.',
|
'message' => 'Refresh expired. Please login again.',
|
||||||
], 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);
|
], 401);
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
\Log::error('❌ General Exception in refreshToken()', [
|
Log::error('🔥 [JWT-REFRESH] Exception', [
|
||||||
'message' => $e->getMessage(),
|
'error' => $e->getMessage(),
|
||||||
'trace' => $e->getTraceAsString(),
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'success' => false,
|
'success' => false,
|
||||||
'message' => 'Unexpected error while refreshing token.',
|
'message' => 'Unable to refresh token.',
|
||||||
], 500);
|
], 401);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User Login
|
* User Login
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 144 KiB |
BIN
public/profile_upload/profile_1766120292.jpg
Normal file
BIN
public/profile_upload/profile_1766120292.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
@@ -19,8 +19,11 @@ Route::post('/signup-request', [RequestController::class, 'usersignup']);
|
|||||||
//login / logout
|
//login / logout
|
||||||
Route::post('/user/login', [UserAuthController::class, 'login']);
|
Route::post('/user/login', [UserAuthController::class, 'login']);
|
||||||
|
|
||||||
|
|
||||||
|
Route::post('/auth/refresh', [UserAuthController::class, 'refreshToken']);
|
||||||
|
|
||||||
|
|
||||||
Route::middleware(['auth:api'])->group(function () {
|
Route::middleware(['auth:api'])->group(function () {
|
||||||
//Route::post('/user/refresh', [UserAuthController::class, 'refreshToken']);
|
|
||||||
|
|
||||||
Route::post('/user/logout', [UserAuthController::class, 'logout']);
|
Route::post('/user/logout', [UserAuthController::class, 'logout']);
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ Route::prefix('admin')->middleware('web')->group(function () {
|
|||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Route::get('/login', function () {
|
||||||
|
return redirect()->route('admin.login');
|
||||||
|
})->name('login');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user