1.0.1 โ€ข Published 9 months ago

node-auth-lib v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

๐Ÿ” NodeJs Authentication Library

A lightweight and secure authentication library for Node.js applications with MySQL support.

โœจ Features

  • Simple and flexible authentication API
  • MySQL database integration
  • Password hashing with bcrypt
  • JWT (JSON Web Token) authentication
  • Input validation and sanitization
  • Rate limiting protection
  • Easy to integrate with any Node.js project

๐Ÿ› ๏ธ Installation

  1. Install the package:
npm install node-auth-lib
# or
yarn add node-auth-lib
  1. Configure environment variables:
# Create .env file
cp .env.example .env

# Edit with your values
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=auth_db
JWT_SECRET=your_jwt_secret
  1. Initialize database:
# Import schema
mysql -u root -p auth_db < database/schema.sql

๐Ÿšฆ Quick Start

const { Auth } = require('node-auth-lib');

// Initialize
const auth = new Auth({
  database: {
    host: process.env.MYSQL_HOST,
    user: process.env.MYSQL_USER,
    password: process.env.MYSQL_PASSWORD,
    database: process.env.MYSQL_DATABASE
  },
  jwt: {
    secret: process.env.JWT_SECRET,
    expiresIn: '24h'
  }
});

// Register user
await auth.register({
  email: 'user@example.com',
  password: 'securepass',
  name: 'John Doe'
});

// Login user
const { token } = await auth.login({
  email: 'user@example.com',
  password: 'securepass'
});

// Verify token
const user = await auth.verify(token);

๐Ÿ“ก API Reference

Authentication Methods

Register User

auth.register({
  email: string,
  password: string,
  name: string
}): Promise<User>

Login

auth.login({
  email: string,
  password: string
}): Promise<{ token: string, user: User }>

Verify Token

auth.verify(token: string): Promise<User>

Logout

auth.logout(token: string): Promise<void>

๐Ÿ”’ Security Features

  • Automatic password hashing with bcrypt
  • Configurable JWT expiration
  • Built-in rate limiting
  • SQL injection prevention
  • Input sanitization
  • Session management

๐Ÿงช Try It Out

You can test all the authentication features using our CLI testing tool:

# Run the interactive CLI test tool
node test-cli.js

This will start an interactive menu where you can:

  • Register new users
  • Login with existing credentials
  • Test password reset functionality
  • Verify authentication tokens

๐Ÿ“ Project Structure

.
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ Auth.js         # Core authentication logic
โ”‚   โ””โ”€โ”€ db.js           # MySQL connection handler
โ”œโ”€โ”€ models/
โ”‚   โ””โ”€โ”€ User.js         # User model
โ”œโ”€โ”€ database/
โ”‚   โ””โ”€โ”€ schema.sql      # MySQL schema
โ”œโ”€โ”€ .env                # Environment variables
โ”œโ”€โ”€ test-cli.js         # Interactive testing tool
โ””โ”€โ”€ README.md

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ฌ Contact

Project Link: https://github.com/satory33/node-auth-lib

๐Ÿ™ Acknowledgments

1.0.1

9 months ago

1.0.0

9 months ago

0.0.4

2 years ago