SUMMARY: Fixed admin login failures caused by two issues: 1. Response sanitization middleware stripping auth tokens 2. Admin users missing password field in database ROOT CAUSE ANALYSIS: - sanitizeResponseData middleware removed ALL fields named 'token' - This included authentication tokens that SHOULD be sent to clients - Admin user records created without proper password field - User.authenticate() failed on bcrypt.compare() with undefined password FIXES: 1. Changed auth response field from 'token' to 'accessToken' - Avoids overly aggressive sanitization - More semantically correct (it's specifically an access token) - Frontend updated to use data.accessToken 2. Created fix-admin-user.js script - Properly creates admin user via User.create() - Ensures password field is bcrypt hashed - Deletes old malformed user records 3. Updated login.js auto-fill for correct dev email - Changed from admin@tractatus.local to admin@agenticgovernance.digital TESTING: - Local login now returns accessToken (308 char JWT) - User object returned with proper ID serialization - Auth flow: POST /api/auth/login → returns accessToken + user - Ready for production deployment FILES: - src/controllers/auth.controller.js: Use accessToken field - public/js/admin/login.js: Store data.accessToken, update default email - scripts/fix-admin-user.js: Admin user creation/fix utility NEXT STEPS: 1. Deploy to production 2. Run: node scripts/fix-admin-user.js admin@agenticgovernance.digital <password> 3. Test admin login at /admin/login.html 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| admin.controller.js | ||
| audit.controller.js | ||
| auth.controller.js | ||
| blog.controller.js | ||
| cases.controller.js | ||
| documents.controller.js | ||
| koha.controller.js | ||
| media.controller.js | ||
| newsletter.controller.js | ||
| projects.controller.js | ||
| rules.controller.js | ||
| variables.controller.js | ||