hedgehod-kit
Version:
Configurable backend auth module with email verification, profile update, and OTP password reset
100 lines (70 loc) โข 2.35 kB
Markdown
**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.
<p align="center">
<img src="https://github.com/SuryaNarayananDev/Hedgehod-jwt/blob/main/spiky(hedegehod).png" width="250" />
</p>
- 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**
---
```bash
npm install hedgehod-kit
(or)
npm install hedgehog-kit
```
```js
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'));
```
Create a `.env` file in your root project with variables like:
```
MONGODB_URI=mongodb://localhost:27017/hedgehog-db
JWT_SECRET=supersecret
VERIFICATION_TOKEN_EXPIRY=15m
AUTH_TOKEN_EXPIRY=1d
RESET_OTP_EXPIRY=15m
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
BASE_URL=http://localhost:5000
...
โ ๏ธ Make sure EMAIL_PASS is an app-specific password if using Gmail.
```
Use tools like Postman to test these routes:
- `POST /auth/signup`
- `POST /auth/login`
- `GET /auth/me` (with JWT)
- `POST /auth/forgot-password`
- `post /auth/request-reset`
- `POST /auth/reset-password`
MIT
---
๐ [GitHub](https://github.com/SuryaNarayananDev/hedgehod-kit) | ๐งฐ Maintained by Suryanarayanan