This repository contains a production-ready authentication server built with Node.js and Express. It leverages two custom npm modules, base-auth-handler for authentication handling and base-error-handler for error management.
- Authentication Handling: Uses base-auth-handler for robust authentication with JWT sent in cookies.
- Error Management: Utilizes base-error-handler for effective error handling.
- Logger: Implements a production-level logger created with Winston and Morgan, saving logs into a remote MongoDB instance.
- TypeScript: The entire package is created using TypeScript for improved type safety and maintainability.
Note: The detailed API documentation is available on Postman. Please refer to API Documentation on Postman.
Additionally, Swagger is integrated for convenient exploration of the API:
- Swagger UI: http://localhost:3000/api-docs
You can also access the API documentation in JSON format:
- API Docs JSON: http://localhost:3000/api-docs.json
- Base URL: http://localhost:3000
- Base URL: https://auth.alwinsimon.com
- Node.js v14.17.0 or higher
- Express v4.17.1
- JSON Web Token (JWT) v8.5.1
- MongoDB (for production-level logging)
APPLICATION_NAME=AUTH SERVER
NODE_ENV=development
(Use development for dev environment and production for prod environment)
PORT=3000
JWT_KEY=your_jwt_key_here
JWT_TOKEN_DURATION=30d
MONGO_DB_URI=mongodburi_here
-
Clone the repository:
git clone https://github.com/alwinsimon/Nodejs-Express-Authentication-Server.git
-
Install dependencies:
cd Nodejs-Express-Authentication-Server
npm install
-
Set up environment variables:
Create a
.env
file in the root of the project and add the environment variables listed above. -
Run the server:
npm run server
The server will be running at http://localhost:3000 or the specified port in your
.env
file.
- Start - For Dev:
npm start
- Test:
npm test
- Clean:
npm run clean
- Build:
npm run build
- Server - For Prod:
npm run server
- See package.json for a detailed list of dependencies.
Feel free to contribute and provide feedback! Create issues for bug reports or feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.