Multi Tenant Role Based Access Control (RBAC) Authentication API
Sponsor
Thank you to Neon for sponsoring this video!
Features
-
Create an application
-
Register a user for an application
-
Login
-
Create a role
-
Assign a role to a user
-
Check user permissions with a guard
What are we using?
What you'll need
- Editor - VS Code
- Node.js - Download
- A database - PostgreSQL by Neon
- A REST client - Thunder Client
What you will learn
- How to create a multi tenant application
- How to create a role based access control system
- Some basic relational database concepts
- A nice and neat file structure for backend services
- TypeScript
- Fastify
- RESTful API design
- How to use Drizzle ORM
Data structure
Data flow
Video structure
- Setup the initial application
- Create a database with Neon
- Create database schemas
- Run migrations
- Register an application
- Register a user
- Login
- Create a role
- Assign a role to a user
- Check user permissions with a guard
Helpful files
- CMD - Commands used in the video
- api.json - Thunder Client collection
Tips
- Infer the applicationId from the JWT where possible
- Include the applicationId in queries