Refactor JWT utility functions for improved readability and consistency

This commit is contained in:
2026-01-28 22:46:07 +00:00
parent 3434a361d9
commit ac0a31c071

View File

@@ -24,9 +24,9 @@ function createMockJWT() {
return { return {
sign: (payload, secret, options) => { sign: (payload, secret, options) => {
// Mock JWT: base64(header).base64(payload).base64(signature) // Mock JWT: base64(header).base64(payload).base64(signature)
const header = Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT' })).toString( const header = Buffer.from(
'base64' JSON.stringify({ alg: 'HS256', typ: 'JWT' })
); ).toString('base64');
const body = Buffer.from(JSON.stringify(payload)).toString('base64'); const body = Buffer.from(JSON.stringify(payload)).toString('base64');
const signature = Buffer.from('mock-signature').toString('base64'); const signature = Buffer.from('mock-signature').toString('base64');
return `${header}.${body}.${signature}`; return `${header}.${body}.${signature}`;
@@ -36,18 +36,18 @@ function createMockJWT() {
const parts = token.split('.'); const parts = token.split('.');
if (parts.length !== 3) throw new Error('Invalid token format'); if (parts.length !== 3) throw new Error('Invalid token format');
const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString()); const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString());
// Check expiration // Check expiration
if (payload.exp && Date.now() >= payload.exp * 1000) { if (payload.exp && Date.now() >= payload.exp * 1000) {
throw new Error('Token expired'); throw new Error('Token expired');
} }
return payload; return payload;
} catch (err) { } catch (err) {
throw new Error(`Invalid token: ${err.message}`); throw new Error(`Invalid token: ${err.message}`);
} }
}, },
decode: (token) => { decode: token => {
const parts = token.split('.'); const parts = token.split('.');
if (parts.length !== 3) return null; if (parts.length !== 3) return null;
return JSON.parse(Buffer.from(parts[1], 'base64').toString()); return JSON.parse(Buffer.from(parts[1], 'base64').toString());
@@ -64,7 +64,7 @@ function createMockJWT() {
*/ */
export function createToken(payload, secret, expiresIn = 7 * 24 * 60 * 60) { export function createToken(payload, secret, expiresIn = 7 * 24 * 60 * 60) {
const now = Math.floor(Date.now() / 1000); const now = Math.floor(Date.now() / 1000);
return jwt.sign( return jwt.sign(
{ {
...payload, ...payload,