hedgehog-kit
v2.0.1
Published
Configurable backend auth module with email verification, profile update, and OTP password reset
Maintainers
Readme
🦔 Hedgehod Kit - JWT Authentication Starter Kit
Hedgehod-Kit is a configurable backend authentication module for Node.js & Express.
It provides signup, email verification, login, profile update, and password reset via OTP — all ready to plug into your project.
Features
- Customizable signup fields (required & optional)
- in signup - required name , mail id, pass , optionaly you can add extra field gender , phone number , address
- Email verification using short-lived JWTs
- Login with auth JWTs
- Profile update for verified users
- Reset password via OTP
- Middleware for protected routes
📦 Installation
npm install hedgehod-kit
(or)
npm install hedgehog-kit🚀 Usage
require('dotenv').config();
const express = require('express');
const { init } = require('hedgehog-kit');
const app = express();
app.use(express.json());
// Initialize hedgehog-kit
init({
app,
signupFields: {
required: ['name', 'email', 'password'],
optional: ['phone']
},
allowProfileUpdate: ['name', 'phone']
});
app.listen(5000, () => console.log('Server running on port 5000'));Environment Setup
Create a .env file in your root project with variables like:
# MongoDB connection string (local or Atlas)
MONGODB_URI=mongodb://localhost:27017/hedgehog-db
# JWT secrets and expiry
JWT_SECRET=supersecret
VERIFICATION_TOKEN_EXPIRY=15m
AUTH_TOKEN_EXPIRY=1d
RESET_OTP_EXPIRY=15m
# Email configuration (Gmail example)
EMAIL_SERVICE=gmail
[email protected]
EMAIL_PASS=your-app-password
# Base URL of your backend
BASE_URL=http://localhost:5000
...
⚠️ Make sure EMAIL_PASS is an app-specific password if using Gmail.🧪 Test Your Integration
Use tools like Postman to test these routes:
POST /auth/signupPOST /auth/loginGET /auth/me(with JWT)POST /auth/forgot-passwordpost /auth/request-resetPOST /auth/reset-password
📜 License
MIT
🔗 GitHub | 🧰 Maintained by Suryanarayanan
