node-auth-lib
v1.0.1
Published
A lightweight and secure authentication library for Node.js applications with MySQL support
Downloads
93
Maintainers
Readme
🔐 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: '[email protected]',
password: 'securepass',
name: 'John Doe'
});
// Login user
const { token } = await auth.login({
email: '[email protected]',
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