Files
shopify-ai-backup/chat/test-tokens.js
2026-02-09 19:37:28 +00:00

53 lines
1.7 KiB
JavaScript

const { initTokenManager, generateAccessToken, verifyAccessToken, generateRefreshToken, verifyRefreshToken, generateDeviceFingerprint } = require('./src/utils/tokenManager');
const crypto = require('crypto');
// Initialize
const secret = crypto.randomBytes(32).toString('hex');
initTokenManager(secret);
console.log('🔑 Testing Token Manager...\n');
// Test 1: Access token generation and verification
const payload = {
userId: 'user123',
email: 'test@example.com',
role: 'user',
plan: 'professional'
};
const accessToken = generateAccessToken(payload);
const decoded = verifyAccessToken(accessToken);
console.log('Test 1: Access Token');
console.log(' Token:', accessToken.substring(0, 50) + '...');
console.log(' User ID:', decoded.userId);
console.log(' Email:', decoded.email);
console.log(' Valid:', decoded.userId === payload.userId ? '✅' : '❌');
// Test 2: Refresh token
const { token, tokenHash } = generateRefreshToken();
const isValid = verifyRefreshToken(token, tokenHash);
const isInvalid = verifyRefreshToken('wrongtoken', tokenHash);
console.log('\nTest 2: Refresh Token');
console.log(' Token:', token.substring(0, 30) + '...');
console.log(' Hash:', tokenHash.substring(0, 30) + '...');
console.log(' Valid verification:', isValid ? '✅' : '❌');
console.log(' Invalid verification:', !isInvalid ? '✅' : '❌');
// Test 3: Device fingerprint
const mockReq = {
headers: {
'user-agent': 'Mozilla/5.0',
'accept-language': 'en-US'
},
ip: '127.0.0.1'
};
const fingerprint = generateDeviceFingerprint(mockReq);
console.log('\nTest 3: Device Fingerprint');
console.log(' Fingerprint:', fingerprint);
console.log(' Length correct:', fingerprint.length === 32 ? '✅' : '❌');
console.log('\n✅ All token tests passed!');