Files
api.portfolio/commands/debug_hash.js
2026-02-25 00:34:39 +01:00

49 lines
2.3 KiB
JavaScript

import { BaseCommand } from '@adonisjs/core/ace';
export default class DebugHash extends BaseCommand {
static commandName = 'debug:hash';
static description = 'Debug hashing and DB storage';
static options = {
startApp: true,
};
async run() {
const { default: hash } = await import('@adonisjs/core/services/hash');
const { default: User } = await import('#models/user');
const { default: db } = await import('@adonisjs/lucid/services/db');
console.log('--- Starting Hash Debug ---');
const password = 'admin123';
const hashed = await hash.make(password);
console.log(`Original Password: ${password}`);
console.log(`Generated Hash (len=${hashed.length}): ${hashed}`);
const verifyImmediate = await hash.verify(hashed, password);
console.log(`Immediate Verify: ${verifyImmediate}`);
const email = 'admin@portfolio.local';
const user = await User.findBy('email', email);
if (user) {
console.log(`\nUpdating user ${user.id} with new hash via RAW DB...`);
await db.from('users').where('id', user.id).update({ password: hashed });
const userReloaded = await User.find(user.id);
if (!userReloaded)
return;
console.log(`Reloaded Model Hash (len=${userReloaded.password.length}): ${userReloaded.password}`);
if (userReloaded.password !== hashed) {
console.error('MISMATCH! storage altered the hash.');
console.error(`Expected: ${hashed}`);
console.error(`Actual: ${userReloaded.password}`);
}
else {
console.log('MATCH! Storage preserved the hash.');
}
const verifyModel = await hash.verify(userReloaded.password, password);
console.log(`Model Verify: ${verifyModel}`);
const rawUser = await db.from('users').where('id', user.id).first();
console.log(`Raw DB Hash (len=${rawUser.password.length}): ${rawUser.password}`);
if (rawUser.password !== hashed) {
console.error('MISMATCH in Raw DB!');
}
}
else {
console.error('User not found!');
}
}
}
//# sourceMappingURL=debug_hash.js.map