You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-8
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,14 @@
20
20
21
21
Secure and easy-to-configure user authentication API developed using Node.js, Express, and MongoDB. It provides robust **password encryption**, **token-based authentication**, **email verification**, and **seamless email delivery** integration. With its straightforward setup, this project enables developers to quickly build a reliable and secure API user authentication system for their applications.
22
22
23
+
1.[Instalation](#📥-installation)
24
+
2.[Configuration](#⚙️-configuration)
25
+
- API
26
+
- Database
27
+
- Custom domain
28
+
- Email sending
29
+
3.[Deploying](#🚀-deploying)
30
+
23
31
## 🧩 Features
24
32
25
33
- ✅ Login attempts limited.
@@ -99,11 +107,12 @@ heroku login
99
107
100
108
Y persionamos ENTER. Nos abrirá una ventana para hacer login en nuestra cuenta de heroku.
101
109
110
+
Creamos una nueva app en heroku
111
+
102
112
````bash
103
113
heroku create -a app-name
104
114
````
105
115
106
-
Esto creará una nueva app en heroku.
107
116
108
117
Comprobamos que se ha configurado correctamente con:
Ahora vamos a configurar nuestras variables de entorno en heroku.
132
+
133
+
Introducimos todos las claves y valores del archivo `.env`.
134
+
123
135
124
136
````bash
125
137
heroku config:set NOMBRE_VARIABLE=valor
@@ -131,9 +143,7 @@ Comprobamos que se han guardado correctamente
131
143
heroku config
132
144
````
133
145
134
-
Vamos a nuestra aplicación -> Settings -> Config Bars.
135
146
136
-
Introducimos todos las claves y valores del archivo `.env`.
137
147
138
148
````bash
139
149
# Desplegar la rama main
@@ -149,11 +159,15 @@ NOTAS IMPORTANTES SOBRE HEROKU CLI
149
159
150
160
- Para volver a hacer deploy en caso de falla, tienes que realizar por lo menos un `git commit`
151
161
152
-
###Set a custom domain
162
+
##🌎 Set a custom domain
153
163
154
-
Vamos a hacerlo utilizando los <ahref="https://devcenter.heroku.com/articles/custom-domains">comandos `domain`de Heroku CLI</a>.
164
+
> ➕ Proveedor de dominio
155
165
156
-
Si ya tenemos nuestro proveedor de dominios y nuestro dominio:
166
+
Vamos a hacerlo utilizando los <ahref="https://devcenter.heroku.com/articles/heroku-cli-commands">comandos de Heroku CLI</a>.
167
+
168
+
Pero también puedes ver de forma más detallada <ahref="https://devcenter.heroku.com/articles/custom-domains">cómo configurar un dominio personalizado en Heroku</a>.
169
+
170
+
Añadimos un dominio a nuestro Heroku
157
171
158
172
````bash
159
173
heroku domains:add www.example.com
@@ -171,7 +185,9 @@ heroku domains
171
185
172
186
Si te equivocas, se pueden borrar con `heroku domains:remove www.example.com`.
173
187
174
-
El DNS Target es el que tenemos que introducir en el valor CNAME de los registros DNS de nuestro dominio. El proveedor de dominio en este caso va a ser <ahref="https://www.hostinger.com/">hostinger.com</a>.
188
+
El DNS Target es el que tenemos que introducir en el valor CNAME de los registros DNS de nuestro dominio. El proveedor de dominio en este caso va a ser <ahref="https://www.hostinger.com/">hostinger.com</a>.
189
+
190
+
> ¿Hay que borrar todos los otros valores CNAME del dominio?
175
191
176
192
Quedando así:
177
193
@@ -181,6 +197,9 @@ Quedando así:
181
197
182
198
En caso de un subdominio, habría que introducir solo su nombre, por ejemplo introduciendo `api`, apuntaría a `api.example.com`.
Copy file name to clipboardExpand all lines: config/cors.config.js
+10-7
Original file line number
Diff line number
Diff line change
@@ -2,20 +2,23 @@ module.exports = {
2
2
// Opciones de configuración para CORS
3
3
options: {
4
4
// 1. Origen permitido para las solicitudes (valor por defecto: '*')
5
-
origin: '*',// Recomendación: Establece el dominio o URL desde donde se permitirán las solicitudes.
6
-
5
+
origin: '*',// Recomendación: Establece el dominio o URL desde donde se permitirán las solicitudes.
6
+
7
7
// 2. Métodos HTTP permitidos (valor por defecto: 'GET,HEAD,PUT,PATCH,POST,DELETE')
8
8
methods: 'GET,POST,PUT,DELETE',// Recomendación: Define los métodos HTTP que se pueden utilizar en las solicitudes. Ajusta según las necesidades de tu API.
9
9
10
10
// 3. Encabezados permitidos en las solicitudes (valor por defecto: 'Content-Type')
11
-
allowedHeaders: 'Authorization,Content-Type',// Recomendación: Indica qué encabezados se permiten en las solicitudes. Habilita el encabezado 'Authorization' para permitir autenticación con tokens.
12
-
11
+
allowedHeaders: 'Authorization,Content-Type,Access-Control-Allow-Origin',// Recomendación: Indica qué encabezados se permiten en las solicitudes. Habilita el encabezado 'Authorization' para permitir autenticación con tokens.
12
+
13
13
// 4. Encabezados expuestos en las respuestas (valor por defecto: '')
14
-
exposedHeaders: 'Authorization',// Recomendación: Define qué encabezados se pueden mostrar en las respuestas del servidor. Exponer el encabezado 'Authorization' permite que el cliente acceda a ese encabezado en las respuestas.
14
+
/* exposedHeaders: 'Authorization', */// Recomendación: Define qué encabezados se pueden mostrar en las respuestas del servidor. Exponer el encabezado 'Authorization' permite que el cliente acceda a ese encabezado en las respuestas.
15
15
16
16
// 5. Permitir el uso de credenciales (valor por defecto: false)
17
-
credentials: true,// Recomendación: Habilita el uso de credenciales (como cookies o encabezados de autorización) en las solicitudes para permitir autenticación con credenciales.
18
-
17
+
/* credentials: true, */// Recomendación: Habilita el uso de credenciales (como cookies o encabezados de autorización) en las solicitudes para permitir autenticación con credenciales.
18
+
19
+
preflightContinue: false,
20
+
21
+
optionsSuccessStatus: 204,
19
22
// 6. Tiempo en segundos para cachear las opciones preflight (valor por defecto: 86400 segundos / 24 horas)
20
23
maxAge: 3600// Recomendación: Especifica el tiempo en segundos que los navegadores deben almacenar en caché las opciones preflight. Ajusta según las necesidades de tu API.
0 commit comments