Skip to content

The project aims to develop a web application that provides a flexible authentication system for users. The application allows users to sign up and log in using two different authentication methods

Notifications You must be signed in to change notification settings

pranjal6314/Multi-Login-System

Repository files navigation

LUGANODES

WebSite

· Report a bug · Request a feature ·

Table of Contents

  1. About The Project
  2. Getting Started
  3. Contributing
  4. License
  5. Acknowledgements

About the project

The project aims to develop a web application that provides a flexible authentication system for users. The application allows users to sign up and log in using two different authentication methods

🛡️Features

User Registration and Login:

  • User-friendly registration and login interfaces for email/password authentication.
  • Secure password hashing and encryption to protect user credentials.
  • Account creation with verification emails to ensure valid email addresses.

Web3 Authentication Integration:

  • Seamless integration with Web3 wallets (e.g., MetaMask, Trust Wallet) for user login.
  • Secure communication with the Ethereum network to verify wallet ownership.
  • Ability for users to log in with a single click from their Ethereum wallets.

JWT-Based Session Management:

  • Implementation of a JSON Web Token (JWT) system to manage user sessions.
  • Issuance of JWT tokens upon successful authentication for secure session handling.
  • Token expiration and refreshing to maintain session security.

Secure Storage of Credentials:

  • Utilization of robust encryption techniques to securely store user credentials.
  • Safe handling and storage of Web3 authentication-related data to protect user privacy.

Authentication Portability:

  • Easy switching between email/password and Web3 authentication methods.
  • Users can choose their preferred authentication method and switch as needed.

User Dashboard:

  • Creation of an interactive and personalized user dashboard.
  • Display user-specific information, such as profile details, account settings, and preferences.
  • Options for users to manage their account information and update settings.

Account Recovery Mechanism:

  • Implementation of an email-based account recovery mechanism for email/password authentication.
  • Secure password reset functionality through email verification.

Google OAuth Integration:

  • Integration of Google OAuth for additional authentication options.
  • Users can choose to log in using their Google accounts for added convenience.

Responsive Design:

  • Ensuring the website is responsive and accessible across various devices and screen sizes.
  • Mobile-friendly interface for users on smartphones and tablets.

Security and Privacy:

  • Adherence to best practices for data security and user privacy.
  • Protection against common security vulnerabilities such as cross-site scripting (XSS) and cross-site request forgery (CSRF).

Error Handling and User Feedback:

  • Proper error handling and informative messages for users during authentication processes.
  • User-friendly feedback to guide users through the registration and login processes.

User Profile and Customization:

  • Allow users to customize their profiles with avatars, usernames, and other optional details.
  • Personalization options for users to enhance their experience on the website.

⚒⚙️ Tech Stack

  • Next.js
  • Tailwind CSS
  • Node.js
  • Express.js
  • MongoDB

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

In order to get a copy of the project you will require you to have Node.js (v14+) and the NPM package manager installed. If you don't have it, you can download the latest version of Node.js from the official website which also installs the NPM package manager by default.

Installation

Open the terminal in the folder in which you wish to clone the repository and enter the following command:

git clone https://github.com/pranjal6314/LUGANODES.git
cd LUGANODES

Install all the NPM packages:

npm i

In order to run the project in development mode use:

npm run dev

In order to build the project and run it, use:

npm run build
npm start

1. Using Docker

In order to test our service we first need to build and run docker-compose. Docker-compose will automate the build and the run of our two Dockerfile. To run these commands you must be in the repository’s root.

  1. Build the Image
docker-compose build
  1. Start the service
docker-compose up -d

Note that you will have to add your own .env file at the root directory and add your own environment variables for the project to build. Following are the environment variables used:

  • MONGO_URI - The MongoDB connection string
  • AUTH_SECRET - The secret used when creating a session
  • NEXT_PUBLIC_HOST - The domain name (usually http://localhost:3000)
  • GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET - The Google OAuth Client ID and Client secret obtained from the Google Cloud Console

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project. (Refer the get started instructions)
  2. Create your Feature Branch. (git checkout -b feature/AmazingFeature)
  3. Commit your Changes. (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch. (git push origin feature/AmazingFeature)
  5. Open a Pull Request.

###Screenshot🖼️

For Docker

image image image image

login with Metamask

image image

With Google Auth

image

Home Page

image

After login with Metamask

image image

image

Again visit the profile - the password section disappear because the password was already put in, now only we can update the password

image image

Now we can log in with the same email and password and the Metamask address is also connected to this account

image image image

The above-used account is only for demonstration purposes so don't try using the same credentials.❌

License

Distributed under the MIT License. See LICENSE for more information.

About

The project aims to develop a web application that provides a flexible authentication system for users. The application allows users to sign up and log in using two different authentication methods

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published