π Nest.js Authentication Example
Nest.js authentication with Passport. RealWorld example
Features
- Authentication using Passport
- Local and JWT strategies are implemented
- TypeORM to connect with PostgreSQL
- Unit tests, integration tests and E2E tests
- ts-auto-mock with ttypescript to generate mocks with jest
- Check code quality with MegaLinter
- Check continuous integration with github actions
- Run the necessary services with docker compose
Run Locally
Clone the project
git clone https://github.com/leosuncin/nest-auth-example.git
Go to the project directory
cd nest-auth-example
Install dependencies
npm install
Create a .env
from the example one and customize it with your environment variables
cp .env.example .env
Start the services using Docker Compose
docker-compose up -d
Run migrations to create the DB schema
npm run typeorm migration:run
Start the server
npm run start:dev
Environment Variables
To run this project, you will need to add the following environment variables to your .env file
POSTGRES_DB
the name of the database to connect in the PostgreSQL instance (required)
POSTGRES_USER
The name of the user to connect to the PostgreSQL instance (required)
POSTGRES_PASSWORD
The password of the user to connect to the PostgreSQL instance (required)
DATABASE_URL
a connection string to the PostgreSQL instance, example postgres://postgres|@localhost/example-db (required)
PORT
the port that Nest.js will listen at (required)
APP_SECRET
the secret used to encrypt the session (required)
ALLOWED_ORIGINS
a comma separated list of origins from which accept request (required)
You can copy the example .env
and edit the values
cp .env.example .env
Running Tests
To run unit tests, run the following command:
npm test
To run e2e tests (the PostgreSQL instance must be available), run the following command:
npm run test:e2e
To see the code coverage
npm run test:cov
Try it online
Tech Stack
Server: Typescript, PostgreSQL, Nest.js, TypeORM, Passport
Test: Jest, SuperTest, TS auto mock
DevOps: Docker Compose
Author
- Twitter: @jl_suncin
- Github: @leosuncin
- LinkedIn: @jaimesuncin
Show your support
Give a
π Stargazers
π΄ Forkers
Related
Here are some more example projects with Nest.js
License
Release under the terms of MIT