Dev.to
8/4/2026

Building Claudius: Auth, Role Resolution, and User Provisioning with Auth.js and MongoDB
Original: Building the foundation Claudius runs on
Short summary
Third in a series on building Claudius, a Claude-based chatbot, this article covers the foundational infrastructure: identity system using Auth.js v5 with Google OAuth, server-side role resolution (admin/member/guest), and user provisioning via MongoDB. Roles are never client-supplied—always resolved server-side with JWT caching. The provisioning logic uses MongoDB aggregation pipelines with $ifNull to preserve admin changes while defaulting new fields.
- •Auth.js v5 with Google OAuth and MongoDB adapter for secure sign-in
- •Server-side role resolution prevents client-side privilege escalation
- •User provisioning uses MongoDB aggregation pipelines with $ifNull for safe defaults
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



