Skip to content

marcoETmx/products-auth

Repository files navigation

API Products

Descripción

Una API de productos con sistema de autenticación y autorización, el cual permite realizar el login por medio de email/password o una cuenta de Google (solo para usuarios con rol Customer).

La API te permite administrar

  • Productos
  • Usuarios

Existen dos roles para los usuarios:

  • Customer
  • Admin

Puedes acceder a la documentación en este enlace

Para realizar el login con google en este enlace

Requisitos

  • npm
  • docker

Installation

$ npm install

Crear proyecto en Google Cloud Platform

Se deberá de crear una proyecto en GCP para poder generar las credencias necesarias

Cuando se tenga el proyecto nos vamos a ir a la parte de API y Servicios

En la opcion de Pantalla de consentimiento de OAuth creamos una nueva y agregamos el usuario de prueba

Despues nos movemos a Credencias donde agregamos una nueva:

Al finalizar nos va a generar el Client ID y Secret lo guardamos para colocarlo como varibale de entorno

Variables de entorno

Se deberan de crear un archivo .env en base al archivo .env.example, remplazando y colocando los valores de utilizar.

Se deberan de agregar las siguientes variables:

  • JWT_SECRET: Esta seria la llave para el JWT
  • GOOGLE_CLIENT_ID: Generada desde GCP
  • GOOGLE_SECRET: Generada desde GCP

Running the app

$ docker-compose up -d mongo

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

License

MIT licensed.