Security
OVERVIEW
Identity is a robust web application built on Next.js 14 with server actions, offering a seamless user authentication experience with a plethora of features.
FEATURES
- Next-auth v5 (Auth.js)
- Next.js 14 with server actions
- OAuth Provider (Social login with Google & GitHub)
- Forgot password functionality
- Email verification
- Two factor verification
- User roles (Admin & User)
- Change email with new verification in Settings page
- Change password with old password confirmation in Settings page
- Enable/disable two-factor auth in Settings page
PROBLEM
The email verification functionality currently requires your own Resend API key and setup instructions are provided due to domain verification requirements on Resend / Handling Multiple Routes, Generating token based authentication storing and retrieving and deleting them using server actions in a mixed setup of server and client components mangaing scalable file folder structure with private and default routes etc...
SOLUTION
I implemented multiple routes in a mixed server-client setup, employing token-based authentication for security. Utilizing server actions, tokens were generated, stored, retrieved, and deleted. A scalable file folder structure managed private and default routes.
TECH STACK
Fullstack:
- NextJS 14
- React JS
- Prisma ORM/PostGres SQL
- Acternity UI
- Server Actions
- ZOD