Giter VIP home page Giter VIP logo

shadabiiitnr20 / node-easy-auth-npm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jyzib/node-easy-auth-npm

0.0 0.0 0.0 107 KB

This npm package provides functionalities for user registration, OTP verification, user login, token verification, and user logout using Express.js and Mongoose for MongoDB integration.

Home Page: https://www.npmjs.com/package/node-easy-auth.js

JavaScript 100.00%

node-easy-auth-npm's Introduction

node-easy-auth

This npm package provides functionalities for user registration, OTP verification, user login, token verification, and user logout using Express.js and Mongoose for MongoDB integration.

Installation

We have taken care of installing the following peer dependencies. Just install node-easy-auth and you are good to go.

npm install node-easy-auth
  • cookie-parser
  • express
  • jsonwebtoken
  • mongoose
  • nodemailer

Import

import this package to make your node auth easy

const { Register, VerifyOtp ,Login,TokenVerification,Logout,ResendOtp} = require('node-easy-auth');

Usage

Setting Up Express Server First, import necessary modules and set up your Express server:

const express = require('express');
const mongoose = require('mongoose');
const cookieParser = require('cookie-parser');
const { Register, VerifyOtp, Login, TokenVerification, Logout, ResendOtp } = require('node-easy-auth');

const app = express();

app.use(cookieParser());
app.use(express.json());

// Connect to MongoDB
const dbtoken = process.env.MONGODBURL;
mongoose.connect(dbtoken).then(() => {
  console.log('MongoDB connected');
}).catch((err) => {
  console.error('MongoDB connection error:', err);
});

// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

Registering a New User

Use the /register endpoint with a POST request to register a new user:

app.post('/register', (req, res) => {
  Register(req, res)
    .then((user) => {
      res.json({ message: 'User registered successfully', user });
    })
    .catch((err) => {
      console.error('Registration error:', err);
      res.status(500).json({ error: 'Registration failed' });
    });
});

Send user info like this in body :

{
  "username":"xyz",
  "email":"[email protected]",
  "password":"xyz@123"
}

Verifying OTP

Verify OTP (one-time password) for user authentication with a POST request to /verify-otp:

app.post('/verify-otp',(req,res)=>{
  VerifyOtp(req,res).then((e)=>{
      res.json({otp:e})
      }).catch((err)=>{
      res.json({otp:err})
  })
})

Send User's OTP like this in body :

{
  "otp":"2443",
}

Re-Send OTP

Verify OTP (one-time password) for user authentication with a POST request to /verify-otp:

app.get('/resendotp', (req, res) => {

  ResendOtp(req,res).then(()=>{
    res.json({ status:true,msg: 'otp sent' });
  }).catch((err)=>{
    res.json({ status:true,msg: `otp sent${err}` });
  })

  
});

User Login

Authenticate a user by sending a POST request to /login:

app.post('/login', (req, res) => {
  Login(req, res)
    .then((user) => {
      res.json({ message: 'Login successful', user });
    })
    .catch((err) => {
      console.error('Login error:', err);
      res.status(401).json({ error: 'Login failed' });
    });
});

Send user info like this in body :

{
  "email":"[email protected]",
  "password":"xyz@123"
}

Protected Routes with Token Verification

Access protected routes by sending a GET request to /protected-route. This route requires token verification using the tokenVerification middleware:

app.get('/protected-route', TokenVerification, (req, res) => {
  // Access user data from decoded token in req.user
  res.json({ message: 'Protected route accessed successfully', user: req.user });
});

User Logout

Log out a user by sending a GET request to /logout:

app.get('/logout', Logout, (req, res) => {
  res.json({ message: 'User logged out successfully' });
});

.env

Add these variable in your environment file

EMAILPASSWORD=your-gmail-sskey
EMAIL=your-email-from-which-you-want-to-send-mail
secretKey=json-web-token-secrect-key
MONGODBURL =your-mongodb-url

node-easy-auth-npm's People

Contributors

jyzib avatar shadabiiitnr20 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.