Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codemaster17/role-based-authentication-authjs
Role based authentication system
https://github.com/codemaster17/role-based-authentication-authjs
authentication-system authjs github-auth google-authentication google-cloud middleware neon-db nextjs14 oauth prisma-orm resend-email role-based-access-control
Last synced: 30 days ago
JSON representation
Role based authentication system
- Host: GitHub
- URL: https://github.com/codemaster17/role-based-authentication-authjs
- Owner: CodeMaster17
- Created: 2023-12-31T17:03:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-05T17:40:16.000Z (about 1 year ago)
- Last Synced: 2024-11-17T17:17:49.847Z (3 months ago)
- Topics: authentication-system, authjs, github-auth, google-authentication, google-cloud, middleware, neon-db, nextjs14, oauth, prisma-orm, resend-email, role-based-access-control
- Language: TypeScript
- Homepage: https://role-based-authentication-authjs.vercel.app
- Size: 476 KB
- Stars: 10
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Home Page
![image](https://github.com/CodeMaster17/role-based-authentication-Authjs/assets/96763776/e1dfd40a-1dda-43ea-8f62-e839aadd30f5)Login page
![image](https://github.com/CodeMaster17/role-based-authentication-Authjs/assets/96763776/9f0e2fad-b380-4f1c-a622-1b45ac9702f3)Register Page
![image](https://github.com/CodeMaster17/role-based-authentication-Authjs/assets/96763776/91375ff6-d19d-47c3-be3e-d8893a6eff66)Settings Page
![image](https://github.com/CodeMaster17/role-based-authentication-Authjs/assets/96763776/91663aaf-f2e1-4aa4-87fe-3b4fde78817d)Description:
Welcome to our Next.js Authentication Guide, a comprehensive resource designed to empower developers with the tools and knowledge needed to implement a robust authentication system in their Next.js applications. Leveraging NextAuth.js, this guide covers everything from setting up basic login mechanisms to implementing advanced security features.Key Features:
- 🔐 Next-auth v5 (Auth.js)
- 🚀 Next.js 14 with server actions
- 🔑 Credentials Provider
- 🌐 OAuth Provider (Social login with Google & GitHub)
- 🔒 Forgot password functionality
- ✉️ Email verification
- 📱 Two factor verification
- 👥 User roles (Admin & User)
- 🔓 Login component (Opens in redirect or modal)
- 📝 Register component
- 🤔 Forgot password component
- ✅ Verification component
- ⚠️ Error component
- 🔘 Login button
- 🚪 Logout button
- 🚧 Role Gate
- 🔍 Exploring next.js middleware
- 📈 Extending & Exploring next-auth session
- 🔄 Exploring next-auth callbacks
- 👤 useCurrentUser hook
- 🛂 useRole hook
- 🧑 currentUser utility
- 👮 currentRole utility
- 🖥️ Example with server component
- 💻 Example with client component
- 👑 Render content for admins using RoleGate component
- 🛡️ Protect API Routes for admins only
- 🔐 Protect Server Actions for admins only
- 📧 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
- 🔄 Change user role in Settings page (for development purposes only)### Prerequisites
**Node version 18.7.x**
### Cloning the repository
```shell
git clone https://github.com/CodeMaster17/role-based-authentication-Authjs.git
```### Install packages
```shell
npm i
```### Setup .env file
```js
DATABASE_URL=
DIRECT_URL=AUTH_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=RESEND_API_KEY=
NEXT_PUBLIC_APP_URL=
```### Setup Prisma
```shell
npx prisma generate
npx prisma db push
```### Start the app
```shell
npm run dev
```## Available commands
Running commands with npm `npm run [command]`
| command | description |
| :-------------- | :--------------------------------------- |
| `dev` | Starts a development instance of the app |