Files
filezzy-staging/backend/scripts/generate-test-token.ts
2026-02-04 14:16:04 +01:00

77 lines
2.5 KiB
TypeScript

#!/usr/bin/env ts-node
import jwt from 'jsonwebtoken';
/**
* Generate test JWT tokens for API testing
* Usage: npx ts-node scripts/generate-test-token.ts [free|premium]
*/
const tier = process.argv[2] || 'free';
const isPremium = tier.toLowerCase() === 'premium';
const freeToken = jwt.sign(
{
sub: 'test-free-user-001',
email: 'free-user@test.com',
preferred_username: 'freeuser',
name: 'Free User',
realm_access: { roles: [] },
},
'test-secret',
{ expiresIn: '24h' }
);
const premiumToken = jwt.sign(
{
sub: 'test-premium-user-001',
email: 'premium-user@test.com',
preferred_username: 'premiumuser',
name: 'Premium User',
realm_access: { roles: ['premium-user'] },
},
'test-secret',
{ expiresIn: '24h' }
);
console.log('\n=================================================');
console.log('🔑 Test JWT Tokens Generated');
console.log('=================================================\n');
if (tier.toLowerCase() === 'both' || !isPremium) {
console.log('📝 FREE User Token:');
console.log('---------------------------------------------------');
console.log(freeToken);
console.log('---------------------------------------------------');
console.log('User: free-user@test.com');
console.log('Tier: FREE');
console.log('Max File Size: 15MB');
console.log('Valid for: 24 hours\n');
}
if (tier.toLowerCase() === 'both' || isPremium) {
console.log('💎 PREMIUM User Token:');
console.log('---------------------------------------------------');
console.log(premiumToken);
console.log('---------------------------------------------------');
console.log('User: premium-user@test.com');
console.log('Tier: PREMIUM');
console.log('Max File Size: 200MB');
console.log('Valid for: 24 hours\n');
}
console.log('=================================================');
console.log('Usage in cURL:');
console.log('---------------------------------------------------');
console.log('curl -H "Authorization: Bearer YOUR_TOKEN" \\');
console.log(' http://localhost:4000/api/v1/user/profile');
console.log('=================================================\n');
console.log('Usage in Swagger UI:');
console.log('---------------------------------------------------');
console.log('1. Go to http://localhost:4000/docs');
console.log('2. Click "Authorize" button');
console.log('3. Paste token (include "Bearer " prefix)');
console.log('4. Click "Authorize"');
console.log('=================================================\n');