1.0.1 โข Published 9 months ago
node-auth-lib v1.0.1
๐ 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
- Install the package:
npm install node-auth-lib
# or
yarn add node-auth-lib
- 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
- 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
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - 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