Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
auth — Una API basada en JWT para gestionar usuarios y emitir tokens JWT | Kitploit
Herramientas/GitHubGitHub/supabase/auth
Autenticación y AutorizaciónGestión de IdentidadesGestión de Identidad y Acceso (IAM)AutenticaciónTop en Autenticación #10Top en Autenticación y Autorización #19Top en Gestión de Identidad y Acceso (IAM) #19Top en Gestión de Identidades #11
2.6k79785hace 6 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHubsupabase/auth

auth

Una API basada en JWT para gestionar usuarios y emitir tokens JWT

Ver RepositorioSitio web
# Auth - Autenticación y gestión de usuarios de Supabase

[![Coverage Status](https://coveralls.io/repos/github/supabase/auth/badge.svg?branch=master)](https://coveralls.io/github/supabase/auth?branch=master)

Auth es un servidor de autenticación y gestión de usuarios escrito en Go que impulsa las funciones de [Supabase](https://supabase.com), como:

- Emisión de JWTs
- Seguridad a nivel de fila con PostgREST
- Gestión de usuarios
- Inicio de sesión con correo electrónico, contraseña, enlace mágico, número de teléfono
- Inicio de sesión con proveedores externos (Google, Apple, Facebook, Discord, ...)

Originalmente se basa en el excelente [código base de GoTrue de Netlify](https://github.com/netlify/gotrue); sin embargo, ambos han divergido significativamente en características y capacidades.

Si deseas contribuir al proyecto, consulta la [guía de contribución](https://github.com/supabase/auth/blob/master/CONTRIBUTING.md).

## Tabla de contenido

- [Inicio rápido](#quick-start)
- [Ejecución en producción](#running-in-production)
- [Configuración](#configuration)
- [Endpoints](#endpoints)

## Inicio rápido

Crea un archivo `.env` para almacenar tus propias variables de entorno personalizadas. Consulta [`example.env`](https://github.com/supabase/auth/blob/master/example.env)

1. Inicia la base de datos Postgres local en un contenedor Postgres: `docker-compose -f docker-compose-dev.yml up postgres`
2. Compila el binario de auth: `make build` . Deberías ver una salida como esta:```bash
go build -ldflags "-X github.com/supabase/auth/cmd.Version=`git rev-parse HEAD`"
GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/supabase/auth/cmd.Version=`git rev-parse HEAD`" -o gotrue-arm64
```
3. Ejecuta el binario de auth: `./auth`

### Si tienes Docker instalado

Crea un archivo `.env.docker` para almacenar tus propias variables de entorno personalizadas. Consulta [`example.docker.env`](https://github.com/supabase/auth/blob/master/example.docker.env)

1. `make build`
2. `make dev`
3. `docker ps` debería mostrar dos contenedores Docker (`auth-auth-1` y `auth-postgres-1`)
4. ¡Eso es todo! Visita el [endpoint de verificación de salud](http://localhost:9999/health) para confirmar que auth está en ejecución.

## Ejecución en producción

Ejecutar un servidor de autenticación en producción no es tarea fácil. Recomendamos usar [Supabase Auth](https://supabase.com/auth), que recibe actualizaciones de seguridad periódicas.

De lo contrario, asegúrate de configurar un proceso para actualizar rápidamente a la última versión. Puedes hacerlo siguiendo este repositorio, especialmente las secciones [Releases](https://github.com/supabase/auth/releases) y [Avisos de seguridad](https://github.com/supabase/auth/security/advisories).

### Compatibilidad hacia atrás

Auth utiliza el esquema de [Versionado Semántico](https://semver.org). Aquí hay algunas aclaraciones adicionales sobre las garantías de compatibilidad hacia atrás:

**Compatibilidad con la API de Go**

Auth no está pensado para usarse como una biblioteca de Go. No hay garantías de compatibilidad de API hacia atrás cuando se usa de esta manera, independientemente del número de versión que cambie.

**Parche**

Los cambios en la versión de parche garantizan compatibilidad hacia atrás con:

- Objetos de base de datos (tablas, columnas, índices, funciones).
- API REST
- Estructura JWT
- Configuración

Ejemplos garantizados:

- Una columna no cambiará su tipo.
- Una tabla no cambiará su clave primaria.
- Un índice no se eliminará.
- Una restricción de unicidad no se eliminará.
- Una API REST no se eliminará.
- Los parámetros de las API REST funcionarán de manera equivalente a antes (o mejor, si se ha corregido un error).
- La configuración no cambiará.

Ejemplos no garantizados:

- Una tabla puede agregar nuevas columnas.
- Las columnas de una tabla pueden reordenarse.
- Las restricciones no únicas pueden eliminarse (comprobaciones a nivel de base de datos, null, valores predeterminados).
- JWT puede agregar nuevas propiedades.

**Menor**

Los cambios en la versión menor garantizan compatibilidad hacia atrás con:

- API REST
- Estructura JWT
- Configuración

Se harán excepciones a estas garantías solo cuando se encuentren problemas de seguridad graves que no puedan remediarse de otra manera.

Ejemplos garantizados:

- Las API existentes pueden quedar obsoletas, pero seguirán funcionando durante las próximas versiones menores.
- Los cambios de configuración pueden quedar obsoletos, pero seguirán funcionando durante las próximas versiones menores.
- Los JWT ya emitidos se aceptarán, pero los nuevos JWT pueden tener una estructura diferente (aunque generalmente similar).

Ejemplos no garantizados:

- Eliminación de campos JWT después de un aviso de obsolescencia.
- Eliminación de ciertas API después de un aviso de obsolescencia.
- Eliminación del inicio de sesión con proveedores externos, después de un aviso de obsolescencia.
- Borrado, truncamiento o cambios significativos de esquema en tablas, índices, vistas y funciones.

Nuestro objetivo es proporcionar un aviso de obsolescencia en los registros de ejecución durante al menos dos versiones mayores o dos semanas si se publican varias versiones. La compatibilidad estará garantizada mientras el aviso esté activo.

**Mayor**

Los cambios en la versión mayor no garantizan ninguna compatibilidad hacia atrás con versiones anteriores.

### Funciones heredadas

Ciertas funciones heredadas de la base de código de Netlify no son compatibles con Supabase y pueden eliminarse sin previo aviso en el futuro. Esta es una lista completa de esas funciones:

1. Multiinquilino mediante la tabla `instances`, es decir, el parámetro de configuración `GOTRUE_MULTI_INSTANCE_MODE`.
2. Usuario del sistema (usuario UUID cero).
3. Superadministrador mediante la columna `is_super_admin`.
4. Información de grupo en JWT mediante `GOTRUE_JWT_ADMIN_GROUP_NAME` y otros campos de configuración.
5. Firma JWT. Supabase Auth admite claves asimétricas (RS256 por defecto; ECC/Ed25519 opcional). HS256 todavía se admite por compatibilidad, pero se recomienda migrar a claves asimétricas para una validación y rotación más fáciles. Las futuras obsolescencias se anunciarán en el changelog. Consulta [Claves de firma JWT](https://supabase.com/docs/guides/auth/signing-keys) y [la guía de JWTs](https://supabase.com/docs/guides/auth/jwts) para más detalles.

Ten en cuenta que esta no es una lista exhaustiva y puede cambiar.

### Buenas prácticas al auto-alojar

Estas son algunas buenas prácticas a seguir al auto-alojar para asegurar la compatibilidad hacia atrás con Auth:

1. No modifiques el esquema administrado por Auth. Puedes ver todas las migraciones en el directorio `migrations`.
2. No te bases en el esquema ni en la estructura de los datos en la base de datos. Usa siempre las API de Auth y los JWT para inferir información sobre los usuarios.
3. Ejecuta siempre Auth detrás de un proxy compatible con TLS, como un balanceador de carga, CDN, nginx u otro software similar.

## Configuración

Puedes configurar Auth usando un archivo de configuración llamado `.env`, variables de entorno o una combinación de ambos. Las variables de entorno tienen el prefijo `GOTRUE_` y siempre tendrán prioridad sobre los valores proporcionados mediante archivo.

### Nivel superior```properties
GOTRUE_SITE_URL=https://example.netlify.com/
```
`SITE_URL` - `string` **obligatorio**

La URL base donde se encuentra tu sitio. Actualmente se usa en combinación con otros ajustes para construir las URLs utilizadas en los correos electrónicos. Cualquier URI que comparta un host con `SITE_URL` es un valor permitido para los parámetros `redirect_to` (ver `/authorize`, etc.).

`URI_ALLOW_LIST` - `string`

Una lista de URIs separadas por comas (p. ej. `"https://foo.example.com,https://*.foo.example.com,https://bar.example.com"`) que están permitidas como destinos `redirect_to` válidos. El valor predeterminado es []. Admite coincidencia con comodines mediante globbing. Por ejemplo, `https://*.foo.example.com` permitirá que se acepten `https://a.foo.example.com` y `https://b.foo.example.com`. El globbing también se admite en subdominios. Por ejemplo, `https://foo.example.com/*` permitirá que se acepten `https://foo.example.com/page1` y `https://foo.example.com/page2`.

Para patrones glob más comunes, consulta el [siguiente enlace](https://pkg.go.dev/github.com/gobwas/glob#Compile).

`OPERATOR_TOKEN` - `string` _Solo modo multi-instancia_

El secreto compartido con un operador (normalmente Netlify) para este microservicio. Se utiliza para verificar que las solicitudes han pasado por el proxy del operador y que se puede confiar en los valores del payload.

`DISABLE_SIGNUP` - `bool`

Cuando el registro está deshabilitado, la única forma de crear nuevos usuarios es mediante invitaciones. El valor predeterminado es `false`, con todos los registros habilitados.

`GOTRUE_EXTERNAL_EMAIL_ENABLED` - `bool`

Úsalo para deshabilitar los registros por correo electrónico (los usuarios aún pueden usar proveedores OAuth externos para registrarse / iniciar sesión)

`GOTRUE_EXTERNAL_PHONE_ENABLED` - `bool`

Úsalo para deshabilitar los registros por teléfono (los usuarios aún pueden usar proveedores OAuth externos para registrarse / iniciar sesión)

`GOTRUE_RATE_LIMIT_HEADER` - `string`

Cabecera sobre la que se aplica el límite de tasa al endpoint `/token`. Se espera que esta cabecera sea establecida por un proxy ascendente de confianza (como Kong o Envoy). Cabeceras como `x-forwarded-for` son falsificables y no se puede confiar en ellas para el límite de tasa cuando las proporciona directamente el cliente.

`GOTRUE_RATE_LIMIT_EMAIL_SENT` - `string`

Limita el número de correos electrónicos enviados por hora en los siguientes endpoints: `/signup`, `/invite`, `/magiclink`, `/recover`, `/otp` y `/user`.

`GOTRUE_PASSWORD_MIN_LENGTH` - `int`

Longitud mínima de la contraseña, el valor predeterminado es 6.

`GOTRUE_PASSWORD_REQUIRED_CHARACTERS` - una cadena de conjuntos de caracteres separados por `:`. Una contraseña debe contener al menos un carácter de cada conjunto para ser aceptada. Para usar el carácter `:`, escápalo con `\`.

`GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` - `bool`

Si la rotación del token de actualización está habilitada, la autenticación detectará automáticamente intentos maliciosos de reutilizar un token de actualización revocado. Cuando se detecta un intento malicioso, GoTrue revoca inmediatamente todos los tokens que descienden del token infractor.

`GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL` - `string`

Este ajuste solo es aplicable si `GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` está habilitado. El intervalo de reutilización de un token de actualización permite intercambiar el token de actualización varias veces durante el intervalo para soportar problemas de concurrencia o de modo offline. Durante el intervalo de reutilización, la autenticación no considerará el uso de un token revocado como un intento malicioso y simplemente devolverá el token de actualización hijo.

Solo el token revocado anterior puede reutilizarse. Usar un token de actualización antiguo mucho antes del token de actualización válido actual activará la detección de reutilización.

### API```properties
GOTRUE_API_HOST=localhost
PORT=9999
API_EXTERNAL_URL=http://localhost:9999
```
`API_HOST` - `string`

Nombre de host en el que escuchar.

`PORT` (no prefix) / `API_PORT` - `number`

Número de puerto en el que escuchar. El valor predeterminado es `8081`.

`API_ENDPOINT` - `string` _Solo modo multi-instancia_

Controla en qué endpoint Netlify puede acceder a esta API.

`API_EXTERNAL_URL` - `string` **obligatorio**

La URL a través de la cual se puede acceder a GoTrue.

`REQUEST_ID_HEADER` - `string`

Si desea heredar un ID de solicitud de la solicitud entrante, especifique el nombre en este valor.

### Base de datos```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth
```
`DB_DRIVER` - `string` **obligatorio**

Selecciona el dialecto de base de datos que deseas. Debe ser `postgres`.

`DATABASE_URL` (sin prefijo) / `DB_DATABASE_URL` - `string` **obligatorio**

Cadena de conexión para la base de datos.

`GOTRUE_DB_MAX_POOL_SIZE` - `int`

Establece el número máximo de conexiones abiertas a la base de datos. El valor predeterminado es 0, lo que equivale a un número "ilimitado" de conexiones.

`DB_NAMESPACE` - `string`

Añade un prefijo a todos los nombres de las tablas.

**Nota sobre las migraciones**

Las migraciones se aplican automáticamente cuando ejecutas `./auth`. Sin embargo, también tienes la opción de volver a ejecutar las migraciones mediante los siguientes métodos:

- Si se compila localmente: `./auth migrate`
- Usando Docker: `docker run --rm auth gotrue migrate`

### Registro```properties
LOG_LEVEL=debug # available without GOTRUE prefix (exception)
GOTRUE_LOG_FILE=/var/log/go/auth.log
```
`LOG_LEVEL` - `string`

Controla qué niveles de registro se emiten. Elige entre `panic`, `fatal`, `error`, `warn`, `info` o `debug`. Por defecto es `info`.

`LOG_FILE` - `string`

Si deseas que los registros se escriban en un archivo, establece `log_file` a una ruta de archivo válida.

### Observabilidad

Auth tiene observabilidad básica integrada. Es capaz de exportar métricas y trazas de [OpenTelemetry](https://opentelemetry.io) a un recolector.

#### Trazas

Para habilitar las trazas configura estas variables:

`GOTRUE_TRACING_ENABLED` - `bool`

`GOTRUE_TRACING_EXPORTER` - `string` solo se admite `opentelemetry`

Asegúrate de configurar también la configuración del [Exportador
de OpenTelemetry](https://opentelemetry.io/docs/reference/specification/protocol/exporter/) para tu recolector o servicio.

Por ejemplo, si usas
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution) deberías establecer estas variables estándar de OTLP de OpenTelemetry:```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"
```
#### Métricas

Para habilitar las métricas configura estas variables:

`GOTRUE_METRICS_ENABLED` - `boolean`

`GOTRUE_METRICS_EXPORTER` - `string`, solo se admiten `opentelemetry` y
`prometheus`

Asegúrate también de configurar la [configuración del Exportador
OpenTelemetry](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
para tu collector o servicio.

Si usas el exportador `prometheus`, el host y el puerto del servidor se pueden
configurar con estas variables estándar de OpenTelemetry:

`OTEL_EXPORTER_PROMETHEUS_HOST` - dirección IP, por defecto `0.0.0.0`

`OTEL_EXPORTER_PROMETHEUS_PORT` - número de puerto, por defecto `9100`

Las métricas se exportan en la ruta `/` del servidor.

Si usas el exportador `opentelemetry`, las métricas se envían al collector.

Por ejemplo, si usas
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
debes establecer estas variables estándar OTLP de OpenTelemetry:```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"
```
Ten en cuenta que Honeycomb.io requiere un plan de pago para ingerir métricas.

Si necesitas depurar un problema con trazas o métricas que no se están enviando, puedes
establecer `DEBUG=true` para obtener más información del SDK de OpenTelemetry.

#### Atributos de recurso personalizados

Al usar el exportador de trazas o métricas de OpenTelemetry, puedes definir atributos
de recurso personalizados mediante la [variable de entorno estándar `OTEL_RESOURCE_ATTRIBUTES`](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable).

Se proporciona un atributo predeterminado `auth.version` que contiene la versión de compilación.

#### Trazado de rutas HTTP

Todas las llamadas HTTP a la API de Auth se rastrean. Las rutas usan la versión
parametrizada de la ruta, y los valores de los parámetros de la ruta se pueden encontrar como
el atributo de span `http.route.params.<route-key>`.

Por ejemplo, la siguiente solicitud:```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/
```
será rastreado como:```
http.method = GET
http.route = /admin/users/{user_id}
http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927
```
#### Métricas de runtime de Go y HTTP

Todas las métricas de runtime de Go están expuestas. Algunas métricas HTTP también se recopilan por defecto.

### JSON Web Tokens (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify
```
`JWT_SECRET` - `string` **requerido**

El secreto utilizado para firmar los tokens JWT.

`JWT_EXP` - `number`

Cuánto tiempo son válidos los tokens, en segundos. El valor predeterminado es 3600 (1 hora).

`JWT_AUD` - `string`

La audiencia JWT predeterminada. Usa audiencias para agrupar usuarios.

`JWT_ADMIN_GROUP_NAME` - `string`

El nombre del grupo de administradores (si está habilitado). El valor predeterminado es `admin`.

`JWT_DEFAULT_GROUP_NAME` - `string`

El grupo predeterminado al que se asignan todos los usuarios nuevos.

### Proveedores de autenticación externos

Admitimos `apple`, `azure`, `bitbucket`, `discord`, `facebook`, `figma`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `snapchat`, `spotify`, `slack`, `twitch`, `twitter` y `workos` para la autenticación externa.

Usa los nombres como claves debajo de `external` para configurar cada uno por separado.```properties
GOTRUE_EXTERNAL_GITHUB_ENABLED=true
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=myappclientid
GOTRUE_EXTERNAL_GITHUB_SECRET=clientsecretvaluessssh
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=http://localhost:3000/callback
```
No se requieren proveedores externos, pero debes proporcionar los valores requeridos si decides habilitar alguno.

`EXTERNAL_X_ENABLED` - `bool`

Si este proveedor externo está habilitado o no

`EXTERNAL_X_CLIENT_ID` - `string` **requerido**

El ID de cliente OAuth2 registrado con el proveedor externo.

`EXTERNAL_X_SECRET` - `string` **requerido**

El secreto de cliente OAuth2 proporcionado por el proveedor externo cuando te registraste.

`EXTERNAL_X_REDIRECT_URI` - `string` **requerido**

La URI a la que un proveedor OAuth2 redirigirá con los valores `code` y `state`.

`EXTERNAL_X_URL` - `string`

La URL base utilizada para construir las URLs para solicitar tokens de autorización y acceso. Usada por `gitlab` y `keycloak`. Para `gitlab`, por defecto es `https://gitlab.com`. Para `keycloak`, debes configurarla con tu instancia, por ejemplo: `https://keycloak.example.com/realms/myrealm`

#### Endurecimiento de la red

Configurar un proveedor de autenticación externo hace que Auth realice solicitudes HTTP salientes a los endpoints de autorización, token y userinfo de ese proveedor. Configurar un proveedor, ya sea mediante los ajustes `GOTRUE_EXTERNAL_*` o una API de administración, es una acción administrativa e implica confiar en los hosts y URLs que serán contactados.

La red en la que se ejecuta Auth debe endurecerse para que estas conexiones salientes no puedan alcanzar recursos exclusivamente internos que no quieras exponer, como direcciones `localhost`/loopback o endpoints de metadatos de la nube (por ejemplo, `169.254.169.254`). Esto es especialmente importante en proveedores con endpoints configurables o detectables por el administrador (por ejemplo, proveedores OAuth/OIDC personalizados), donde una URL mal configurada o maliciosa podría utilizarse para alcanzar infraestructura interna.

#### OAuth de Apple

Para probar la autenticación externa con Apple localmente, deberás hacer lo siguiente:

1. Reasigna localhost a \<my_custom_dns \> en tu configuración de `/etc/hosts`.
2. Configura auth para servir tráfico HTTPS a través de localhost reemplazando `ListenAndServe` en [api.go](https://github.com/supabase/auth/blob/master/internal/api/api.go) por:   ```
      func (a *API) ListenAndServe(hostAndPort string) {
        log := logrus.WithField("component", "api")
        path, err := os.Getwd()
        if err != nil {
          log.Println(err)
        }
        server := &http.Server{
          Addr:    hostAndPort,
          Handler: a.handler,
        }
        done := make(chan struct{})
        defer close(done)
        go func() {
          waitForTermination(log, done)
          ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
          defer cancel()
          server.Shutdown(ctx)
        }()
        if err := server.ListenAndServeTLS("PATH_TO_CRT_FILE", "PATH_TO_KEY_FILE"); err != http.ErrServerClosed {
          log.WithError(err).Fatal("http server listen failed")
        }
    }
   ```
3. Genere el archivo crt y el archivo key. Consulte [aquí](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) para obtener más información.
4. Genere el `GOTRUE_EXTERNAL_APPLE_SECRET` siguiendo este [post](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003).

### Correo electrónico

El envío de correos electrónicos no es obligatorio, pero es muy recomendable para la recuperación de contraseñas.
Si está habilitado, debe proporcionar los valores requeridos a continuación.```properties
GOTRUE_SMTP_HOST=smtp.mandrillapp.com
GOTRUE_SMTP_PORT=587
[email protected]
GOTRUE_SMTP_PASS=correcthorsebatterystaple
[email protected]
GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm"
```
`SMTP_ADMIN_EMAIL` - `string` **required**

La dirección de correo electrónico `From` para todos los correos enviados.

`SMTP_HOST` - `string` **required**

El nombre de host del servidor de correo a través del cual enviar los correos.

`SMTP_PORT` - `number` **required**

El número de puerto para conectarse al servidor de correo.

`SMTP_USER` - `string`

Si el servidor de correo requiere autenticación, el nombre de usuario a utilizar.

`SMTP_PASS` - `string`

Si el servidor de correo requiere autenticación, la contraseña a utilizar.

`SMTP_MAX_FREQUENCY` - `number`

Controla la cantidad mínima de tiempo que debe transcurrir antes de enviar otro correo de confirmación de registro o de restablecimiento de contraseña. El valor es el número de segundos. El valor predeterminado es 900 (15 minutos).

`SMTP_SENDER_NAME` - `string`

Establece el nombre del remitente. El valor predeterminado es `SMTP_ADMIN_EMAIL` si no se utiliza.

`MAILER_AUTOCONFIRM` - `bool`

Si no requiere confirmación de correo electrónico, puede establecer esto en `true`. El valor predeterminado es `false`.

`MAILER_OTP_EXP` - `number`

Controla la duración durante la cual un enlace de correo electrónico o un OTP es válido.

`MAILER_URLPATHS_INVITE` - `string`

Ruta de URL a utilizar en el correo de invitación de usuario. El valor predeterminado es `/verify`.

`MAILER_URLPATHS_CONFIRMATION` - `string`

Ruta de URL a utilizar en el correo de confirmación de registro. El valor predeterminado es `/verify`.

`MAILER_URLPATHS_RECOVERY` - `string`

Ruta de URL a utilizar en el correo de restablecimiento de contraseña. El valor predeterminado es `/verify`.

`MAILER_URLPATHS_EMAIL_CHANGE` - `string`

Ruta de URL a utilizar en el correo de confirmación de cambio de correo electrónico. El valor predeterminado es `/verify`.

`MAILER_SUBJECTS_INVITE` - `string`

Asunto del correo electrónico a utilizar para la invitación de usuario. El valor predeterminado es `You've been invited`.

`MAILER_SUBJECTS_CONFIRMATION` - `string`

Asunto del correo electrónico a utilizar para la confirmación de registro. El valor predeterminado es `Confirm your email address`.

`MAILER_SUBJECTS_RECOVERY` - `string`

Asunto del correo electrónico a utilizar para el restablecimiento de contraseña. El valor predeterminado es `Reset your password`.

`MAILER_SUBJECTS_MAGIC_LINK` - `string`

Asunto del correo electrónico a utilizar para el correo de enlace mágico. El valor predeterminado es `Your sign-in link`.

`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`

Asunto del correo electrónico a utilizar para la confirmación de cambio de correo electrónico. El valor predeterminado es `Confirm your new email address`.

`MAILER_SUBJECTS_REAUTHENTICATION` - `string`

Asunto del correo electrónico a utilizar para la reautenticación. El valor predeterminado es `{{ .Token }} is your verification code`.

`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de cambio de contraseña. El valor predeterminado es `Your password was changed`.

`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de cambio de correo electrónico. El valor predeterminado es `Your email address was changed`.

`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de cambio de número de teléfono. El valor predeterminado es `Your phone number was changed`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de identidad vinculada. El valor predeterminado es `A new sign-in method was linked to your account`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de identidad desvinculada. El valor predeterminado es `A sign-in method was removed from your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de método de verificación añadido. El valor predeterminado es `A new verification method was added to your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`

Asunto del correo electrónico a utilizar para la notificación de método de verificación eliminado. El valor predeterminado es `A verification method was removed from your account`.

`MAILER_TEMPLATES_INVITE` - `string`

Ruta de URL a una plantilla de correo electrónico para usar al invitar a un usuario. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `SiteURL`, `Email` y `ConfirmationURL` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>You've been invited</h2>

<p>You've been invited to create an account. Follow the link below to accept.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Accept invitation</a></p>
```
`MAILER_TEMPLATES_CONFIRMATION` - `string`

Ruta URL a una plantilla de correo electrónico para usar al confirmar un registro. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `SiteURL`, `Email` y `ConfirmationURL` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Confirm your email address</h2>

<p>Follow the link below to confirm this email address and finish signing up.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Confirm email address</a></p>
```
`MAILER_TEMPLATES_RECOVERY` - `string`

Ruta URL a una plantilla de correo electrónico para usar al restablecer una contraseña. (p. ej., `https://www.example.com/path-to-email-template.html`)
Las variables `SiteURL`, `Email` y `ConfirmationURL` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Reset your password</h2>

<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Reset password</a></p>
<p>If you didn't request this, you can safely ignore this email.</p>
```
`MAILER_TEMPLATES_MAGIC_LINK` - `string`

Ruta de URL a una plantilla de correo electrónico para usar al enviar el enlace mágico. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `SiteURL`, `Email` y `ConfirmationURL` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Your sign-in link</h2>

<p>Follow the link below to sign in. This link expires shortly and can only be used once.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Sign in</a></p>
```
`MAILER_TEMPLATES_EMAIL_CHANGE` - `string`

Ruta URL a una plantilla de correo electrónico para usar al confirmar el cambio de una dirección de correo electrónico. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `SiteURL`, `Email`, `NewEmail` y `ConfirmationURL` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Confirm your new email address</h2>

<p>Follow the link below to confirm {{ .NewEmail }} as your new email address.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Confirm new email address</a></p>
<p>If you didn't request this change, you can safely ignore this email.</p>
```
`MAILER_TEMPLATES_REAUTHENTICATION` - `string`

Ruta de URL a una plantilla de correo electrónico para usar al reautenticar a un usuario. (p. ej. `https://www.example.com/path-to-email-template.html`)
La variable `Token` está disponible.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Your verification code</h2>

<p>Use the code below to verify your identity. It expires shortly.</p>
<p>{{ .Token }}</p>
```
`MAILER_TEMPLATES_PASSWORD_CHANGED_NOTIFICATION` - `string`

Ruta URL a una plantilla de correo electrónico para usar al notificar a un usuario que su contraseña ha sido cambiada. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `Email` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Your password was changed</h2>

<p>The password for your account was recently changed.</p>
<p>If you didn't make this change, reset your password and contact support immediately.</p>
```
`GOTRUE_MAILER_NOTIFICATIONS_PASSWORD_CHANGED_ENABLED` - `bool`

Si se debe enviar un correo de notificación cuando se cambia la contraseña de un usuario. El valor por defecto es `false`.

`MAILER_TEMPLATES_EMAIL_CHANGED_NOTIFICATION` - `string`

Ruta URL a una plantilla de correo para usar al notificar a un usuario que su correo ha sido cambiado. (p. ej., `https://www.example.com/path-to-email-template.html`)
Las variables `Email` y `OldEmail` están disponibles.

Contenido por defecto (si la plantilla no está disponible):```html
<h2>Your email address was changed</h2>

<p>The email address for your account was changed from {{ .OldEmail }} to {{ .Email }}.</p>
<p>If you didn't make this change, contact support immediately.</p>
```
`GOTRUE_MAILER_NOTIFICATIONS_EMAIL_CHANGED_ENABLED` - `bool`

Si enviar un correo de notificación cuando se cambia el correo electrónico de un usuario. El valor predeterminado es `false`.

`GOTRUE_MAILER_TEMPLATES_PHONE_CHANGED_NOTIFICATION` - `string`

Ruta URL a una plantilla de correo electrónico para usar al notificar a un usuario que su número de teléfono ha sido cambiado. (p. ej. `https://www.example.com/path-to-email-template.html`)
Las variables `Email`, `Phone` y `OldPhone` están disponibles.

Contenido predeterminado (si la plantilla no está disponible):```html
<h2>Your phone number was changed</h2>

<p>The phone number for your account was changed from {{ .OldPhone }} to {{ .Phone }}.</p>
<p>If you didn't make this change, contact support immediately.</p>
```
`GOTRUE_MAILER_NOTIFICATIONS_PHONE_CHANGED_ENABLED` - `bool`

Indica si se debe enviar un correo de notificación cuando se cambia el número de teléfono de un usuario. El valor predeterminado es `false`.

`GOTRUE_MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION` - `string`

Ruta URL a una plantilla de correo para usar al notificar a un usuario que un método de inicio de sesión ha sido vinculado a su cuenta. (p. ej. `https://www.example.com/path-to-email-template.html`)

---

[Read more](https://github.com/supabase/auth)
Descargar herramienta