
Une API basée sur JWT pour gérer les utilisateurs et émettre des tokens JWT.
# Auth - Authentification et gestion des utilisateurs par Supabase
[](https://coveralls.io/github/supabase/auth?branch=master)
Auth est un serveur de gestion des utilisateurs et d'authentification écrit en Go qui alimente les fonctionnalités de [Supabase](https://supabase.com), telles que :
- Émission de JWT
- Sécurité au niveau des lignes avec PostgREST
- Gestion des utilisateurs
- Connexion par e-mail, mot de passe, lien magique, numéro de téléphone
- Connexion avec des fournisseurs externes (Google, Apple, Facebook, Discord, ...)
Il est à l'origine basé sur l'excellente [base de code GoTrue de Netlify](https://github.com/netlify/gotrue), mais les deux ont considérablement divergé en termes de fonctionnalités et de capacités.
Si vous souhaitez contribuer au projet, veuillez vous référer au [guide de contribution](https://github.com/supabase/auth/blob/master/CONTRIBUTING.md).
## Table des matières
- [Démarrage rapide](#quick-start)
- [Exécution en production](#running-in-production)
- [Configuration](#configuration)
- [Endpoints](#endpoints)
## Démarrage rapide
Créez un fichier `.env` pour stocker vos propres variables d'environnement personnalisées. Voir [`example.env`](https://github.com/supabase/auth/blob/master/example.env)
1. Démarrez la base de données Postgres locale dans un conteneur Postgres : `docker-compose -f docker-compose-dev.yml up postgres`
2. Compilez le binaire auth : `make build` . Vous devriez voir une sortie similaire à ceci :```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. Exécutez le binaire auth : `./auth`
### Si vous avez Docker installé
Créez un fichier `.env.docker` pour stocker vos propres variables d'environnement personnalisées. Voir [`example.docker.env`](https://github.com/supabase/auth/blob/master/example.docker.env)
1. `make build`
2. `make dev`
3. `docker ps` devrait afficher deux conteneurs Docker (`auth-auth-1` et `auth-postgres-1`)
4. C'est tout ! Visitez l'[endpoint de vérification de santé](http://localhost:9999/health) pour confirmer qu'auth fonctionne.
## Exécution en production
Exécuter un serveur d'authentification en production n'est pas une tâche facile. Nous recommandons d'utiliser [Supabase Auth](https://supabase.com/auth), qui bénéficie de mises à jour de sécurité régulières.
Sinon, veuillez vous assurer de mettre en place un processus pour mettre à jour rapidement vers la dernière version. Vous pouvez le faire en suivant ce dépôt, en particulier les sections [Releases](https://github.com/supabase/auth/releases) et [Security Advisories](https://github.com/supabase/auth/security/advisories).
### Rétrocompatibilité
Auth utilise le schéma [Semantic Versioning](https://semver.org). Voici quelques précisions supplémentaires sur les garanties de rétrocompatibilité :
**Compatibilité de l'API Go**
Auth n'est pas conçu pour être utilisé comme une bibliothèque Go. Il n'y a aucune garantie de compatibilité API ascendante lorsqu'il est utilisé de cette manière, quel que soit le numéro de version modifié.
**Patch**
Les modifications apportées à la version de patch garantissent la rétrocompatibilité avec :
- Les objets de base de données (tables, colonnes, index, fonctions).
- REST API
- La structure des JWT
- La configuration
Exemples garantis :
- Une colonne ne changera pas de type.
- Une table ne changera pas sa clé primaire.
- Un index ne sera pas supprimé.
- Une contrainte d'unicité ne sera pas supprimée.
- Une API REST ne sera pas supprimée.
- Les paramètres des API REST fonctionneront de manière équivalente à avant (ou mieux, si un bug a été corrigé).
- La configuration ne changera pas.
Exemples non garantis :
- Une table peut ajouter de nouvelles colonnes.
- Les colonnes d'une table peuvent être réordonnées.
- Des contraintes non uniques peuvent être supprimées (vérifications au niveau de la base de données, valeurs null, valeurs par défaut).
- Les JWT peuvent ajouter de nouvelles propriétés.
**Mineur**
Les modifications apportées à la version mineure garantissent la rétrocompatibilité avec :
- REST API
- La structure des JWT
- La configuration
Des exceptions à ces garanties ne seront faites que lorsque de graves problèmes de sécurité seront découverts et ne pourront être corrigés d'aucune autre manière.
Exemples garantis :
- Les API existantes peuvent être dépréciées mais continueront de fonctionner pendant les prochaines versions mineures.
- Les modifications de configuration peuvent être dépréciées mais continueront de fonctionner pendant les prochaines versions mineures.
- Les JWT déjà émis seront acceptés, mais les nouveaux JWT peuvent avoir une structure différente (mais généralement similaire).
Exemples non garantis :
- La suppression de champs JWT après un avis de dépréciation.
- La suppression de certaines API après un avis de dépréciation.
- La suppression de la connexion avec des fournisseurs externes, après un avis de dépréciation.
- La suppression, la troncature ou des modifications importantes de schéma sur les tables, index, vues et fonctions.
Nous visons à fournir un avis de dépréciation dans les journaux d'exécution pendant au moins deux versions majeures, ou deux semaines si plusieurs versions sont publiées. La compatibilité sera garantie tant que l'avis est actif.
**Majeur**
Les modifications apportées à la version majeure ne garantissent aucune rétrocompatibilité avec les versions précédentes.
### Fonctionnalités héritées
Certaines fonctionnalités héritées de la base de code Netlify ne sont pas prises en charge par Supabase et peuvent être supprimées sans préavis à l'avenir. Voici une liste complète de ces fonctionnalités :
1. La multi-tenant via la table `instances`, c'est-à-dire le paramètre de configuration `GOTRUE_MULTI_INSTANCE_MODE`.
2. L'utilisateur système (utilisateur UUID zéro).
3. Le super administrateur via la colonne `is_super_admin`.
4. Les informations de groupe dans les JWT via `GOTRUE_JWT_ADMIN_GROUP_NAME` et d'autres champs de configuration.
5. La signature JWT. Supabase Auth prend en charge les clés asymétriques (RS256 par défaut ; ECC/Ed25519 en option). HS256 est toujours pris en charge pour la compatibilité, mais la migration vers des clés asymétriques est recommandée pour une validation et une rotation plus faciles. Les dépréciations futures seront annoncées dans le journal des modifications. Voir les [JWT Signing Keys](https://supabase.com/docs/guides/auth/signing-keys) et le [guide des JWT](https://supabase.com/docs/guides/auth/jwts) pour plus de détails.
Notez que cette liste n'est pas exhaustive et peut changer.
### Meilleures pratiques pour l'auto-hébergement
Voici quelques bonnes pratiques à suivre lors de l'auto-hébergement pour garantir la rétrocompatibilité avec Auth :
1. Ne modifiez pas le schéma géré par Auth. Vous pouvez voir toutes les migrations dans le répertoire `migrations`.
2. Ne vous fiez pas au schéma ni à la structure des données dans la base de données. Utilisez toujours les API Auth et les JWT pour déduire des informations sur les utilisateurs.
3. Exécutez toujours Auth derrière un proxy compatible TLS tel qu'un équilibreur de charge, un CDN, nginx ou un autre logiciel similaire.
## Configuration
Vous pouvez configurer Auth à l'aide d'un fichier de configuration nommé `.env`, de variables d'environnement, ou d'une combinaison des deux. Les variables d'environnement sont préfixées par `GOTRUE_` et ont toujours la priorité sur les valeurs fournies via le fichier.
### Niveau supérieur```properties
GOTRUE_SITE_URL=https://example.netlify.com/
```
`SITE_URL` - `string` **required**
L'URL de base de votre site. Actuellement utilisée en combinaison avec d'autres paramètres pour construire les URLs utilisées dans les e-mails. Toute URI partageant un hôte avec `SITE_URL` est une valeur autorisée pour les paramètres `redirect_to` (voir `/authorize` etc.).
`URI_ALLOW_LIST` - `string`
Une liste d'URIs séparées par des virgules (par ex. `"https://foo.example.com,https://*.foo.example.com,https://bar.example.com"`) qui sont autorisées comme destinations `redirect_to` valides. Par défaut []. Prend en charge la correspondance par caractères génériques via le globbing. Par ex. `https://*.foo.example.com` permettra d'accepter `https://a.foo.example.com` et `https://b.foo.example.com`. Le globbing est également pris en charge sur les sous-domaines. Par ex. `https://foo.example.com/*` permettra d'accepter `https://foo.example.com/page1` et `https://foo.example.com/page2`.
Pour des motifs de glob plus courants, consultez le [lien suivant](https://pkg.go.dev/github.com/gobwas/glob#Compile).
`OPERATOR_TOKEN` - `string` _Multi-instance mode only_
Le secret partagé avec un opérateur (généralement Netlify) pour ce microservice. Utilisé pour vérifier que les requêtes ont transité par l'opérateur et
que les valeurs de la charge utile peuvent être fiables.
`DISABLE_SIGNUP` - `bool`
Lorsque l'inscription est désactivée, la seule façon de créer de nouveaux utilisateurs est de passer par des invitations. Par défaut `false`, toutes les inscriptions sont activées.
`GOTRUE_EXTERNAL_EMAIL_ENABLED` - `bool`
Utilisez ceci pour désactiver les inscriptions par e-mail (les utilisateurs peuvent toujours utiliser des fournisseurs OAuth externes pour s'inscrire / se connecter)
`GOTRUE_EXTERNAL_PHONE_ENABLED` - `bool`
Utilisez ceci pour désactiver les inscriptions par téléphone (les utilisateurs peuvent toujours utiliser des fournisseurs OAuth externes pour s'inscrire / se connecter)
`GOTRUE_RATE_LIMIT_HEADER` - `string`
En-tête sur lequel appliquer la limite de débit à l'endpoint `/token`. Cet en-tête est censé être défini par un proxy amont de confiance (tel que Kong ou Envoy). Les en-têtes tels que `x-forwarded-for` peuvent être usurpés et ne peuvent pas être fiables pour la limitation de débit lorsqu'ils sont fournis directement par le client.
`GOTRUE_RATE_LIMIT_EMAIL_SENT` - `string`
Limiter le nombre d'e-mails envoyés par heure sur les endpoints suivants : `/signup`, `/invite`, `/magiclink`, `/recover`, `/otp`, et `/user`.
`GOTRUE_PASSWORD_MIN_LENGTH` - `int`
Longueur minimale du mot de passe, par défaut 6.
`GOTRUE_PASSWORD_REQUIRED_CHARACTERS` - une chaîne de jeux de caractères séparés par `:`. Un mot de passe doit contenir au moins un caractère de chaque jeu pour être accepté. Pour utiliser le caractère `:`, échappez-le avec `\`.
`GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` - `bool`
Si la rotation des jetons de rafraîchissement est activée, l'authentification détectera automatiquement les tentatives malveillantes de réutilisation d'un jeton de rafraîchissement révoqué. Lorsqu'une tentative malveillante est détectée, GoTrue révoque immédiatement tous les jetons issus du jeton incriminé.
`GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL` - `string`
Ce paramètre ne s'applique que si `GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` est activé. L'intervalle de réutilisation d'un jeton de rafraîchissement permet d'échanger le jeton de rafraîchissement plusieurs fois pendant l'intervalle pour prendre en charge les problèmes de concurrence ou de hors-ligne. Pendant l'intervalle de réutilisation, l'authentification ne considérera pas l'utilisation d'un jeton révoqué comme une tentative malveillante et renverra simplement le jeton de rafraîchissement enfant.
Seul le jeton révoqué précédent peut être réutilisé. Utiliser un ancien jeton de rafraîchissement bien avant le jeton de rafraîchissement valide actuel déclenchera la détection de réutilisation.
### API```properties
GOTRUE_API_HOST=localhost
PORT=9999
API_EXTERNAL_URL=http://localhost:9999
```
`API_HOST` - `string`
Nom d'hôte sur lequel écouter.
`PORT` (sans préfixe) / `API_PORT` - `number`
Numéro de port sur lequel écouter. La valeur par défaut est `8081`.
`API_ENDPOINT` - `string` _Mode multi-instance uniquement_
Contrôle sur quel endpoint Netlify peut accéder à cette API.
`API_EXTERNAL_URL` - `string` **requis**
L'URL à laquelle GoTrue peut être accessible.
`REQUEST_ID_HEADER` - `string`
Si vous souhaitez hériter d'un ID de requête depuis la requête entrante, spécifiez le nom dans cette valeur.
### Base de données```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth
```
`DB_DRIVER` - `string` **required**
Choisit le dialecte de base de données souhaité. Doit être `postgres`.
`DATABASE_URL` (no prefix) / `DB_DATABASE_URL` - `string` **required**
Chaîne de connexion à la base de données.
`GOTRUE_DB_MAX_POOL_SIZE` - `int`
Définit le nombre maximal de connexions ouvertes à la base de données. La valeur par défaut est 0, ce qui équivaut à un nombre "illimité" de connexions.
`DB_NAMESPACE` - `string`
Ajoute un préfixe à tous les noms de tables.
**Note sur les migrations**
Les migrations sont appliquées automatiquement lorsque vous exécutez `./auth`. Toutefois, vous avez également la possibilité de relancer les migrations via les méthodes suivantes :
- Si vous l'avez construit localement : `./auth migrate`
- En utilisant Docker : `docker run --rm auth gotrue migrate`
### Logging```properties
LOG_LEVEL=debug # available without GOTRUE prefix (exception)
GOTRUE_LOG_FILE=/var/log/go/auth.log
```
`LOG_LEVEL` - `string`
Contrôle les niveaux de journalisation affichés. Choisissez parmi `panic`, `fatal`, `error`, `warn`, `info` ou `debug`. Par défaut, `info`.
`LOG_FILE` - `string`
Si vous souhaitez que les journaux soient écrits dans un fichier, définissez `log_file` sur un chemin de fichier valide.
### Observabilité
Auth dispose d'une observabilité de base intégrée. Il peut exporter les métriques et traces
[OpenTelemetry](https://opentelemetry.io) vers un collecteur.
#### Traçage
Pour activer le traçage, configurez ces variables :
`GOTRUE_TRACING_ENABLED` - `bool`
`GOTRUE_TRACING_EXPORTER` - `string` seul `opentelemetry` pris en charge
Assurez-vous également de configurer la configuration de l'[OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
pour votre collecteur ou service.
Par exemple, si vous utilisez
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
vous devez définir ces variables OpenTelemetry OTLP standard :```
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étriques
Pour activer les métriques, configurez ces variables :
`GOTRUE_METRICS_ENABLED` - `boolean`
`GOTRUE_METRICS_EXPORTER` - `string` seulement `opentelemetry` et `prometheus`
pris en charge
Assurez-vous également de configurer la configuration [OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
pour votre collecteur ou service.
Si vous utilisez l'exportateur `prometheus`, l'hôte et le port du serveur peuvent être
configurés à l'aide de ces variables OpenTelemetry standard :
`OTEL_EXPORTER_PROMETHEUS_HOST` - adresse IP, défaut `0.0.0.0`
`OTEL_EXPORTER_PROMETHEUS_PORT` - numéro de port, défaut `9100`
Les métriques sont exportées sur le chemin `/` du serveur.
Si vous utilisez l'exportateur `opentelemetry`, les métriques sont envoyées au
collecteur.
Par exemple, si vous utilisez
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
vous devez définir ces variables OTLP OpenTelemetry standard :```
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"
```
Veuillez noter que Honeycomb.io nécessite un plan payant pour ingérer les métriques.
Si vous devez déboguer un problème lié à l'envoi de traces ou de métriques, vous pouvez
définir `DEBUG=true` pour obtenir plus d'informations de la part du SDK OpenTelemetry.
#### Attributs de ressource personnalisés
Lorsque vous utilisez l'exportateur de traces ou de métriques OpenTelemetry, vous pouvez définir des
attributs de ressource personnalisés à l'aide de la [variable
d'environnement standard `OTEL_RESOURCE_ATTRIBUTES`](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable).
Un attribut par défaut `auth.version` est fourni, contenant la version de build.
#### Tracé des routes HTTP
Tous les appels HTTP à l'API Auth sont tracés. Les routes utilisent la version
paramétrée de la route, et les valeurs des paramètres de route sont disponibles sous
la forme de l'attribut de span `http.route.params.<route-key>`.
Par exemple, la requête suivante :```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/
```
sera tracé comme :```
http.method = GET
http.route = /admin/users/{user_id}
http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927
```
#### Métriques du runtime Go et HTTP
Toutes les métriques du runtime Go sont exposées. Certaines métriques HTTP sont également collectées
par défaut.
### JSON Web Tokens (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify
```
`JWT_SECRET` - `string` **required**
Le secret utilisé pour signer les jetons JWT.
`JWT_EXP` - `number`
Durée de validité des jetons, en secondes. Par défaut : 3600 (1 heure).
`JWT_AUD` - `string`
L'audience JWT par défaut. Utilisez les audiences pour regrouper les utilisateurs.
`JWT_ADMIN_GROUP_NAME` - `string`
Le nom du groupe administrateur (s'il est activé). Par défaut : `admin`.
`JWT_DEFAULT_GROUP_NAME` - `string`
Le groupe par défaut auquel assigner tous les nouveaux utilisateurs.
### Fournisseurs d'authentification externe
Nous prenons en charge `apple`, `azure`, `bitbucket`, `discord`, `facebook`, `figma`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `snapchat`, `spotify`, `slack`, `twitch`, `twitter` et `workos` pour l'authentification externe.
Utilisez les noms comme clés sous `external` pour configurer chacun séparément.```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
```
Aucun fournisseur externe n'est requis, mais vous devez fournir les valeurs requises si vous choisissez d'en activer un.
`EXTERNAL_X_ENABLED` - `bool`
Indique si ce fournisseur externe est activé ou non.
`EXTERNAL_X_CLIENT_ID` - `string` **required**
L'ID client OAuth2 enregistré auprès du fournisseur externe.
`EXTERNAL_X_SECRET` - `string` **required**
Le secret client OAuth2 fourni par le fournisseur externe lors de l'enregistrement.
`EXTERNAL_X_REDIRECT_URI` - `string` **required**
L'URI vers laquelle un fournisseur OAuth2 redirigera avec les valeurs `code` et `state`.
`EXTERNAL_X_URL` - `string`
L'URL de base utilisée pour construire les URLs de demande d'autorisation et de jeton d'accès. Utilisée par `gitlab` et `keycloak`. Pour `gitlab`, elle est par défaut `https://gitlab.com`. Pour `keycloak`, vous devez la définir sur votre instance, par exemple : `https://keycloak.example.com/realms/myrealm`
#### Durcissement du réseau
La configuration d'un fournisseur d'authentification externe amène Auth à effectuer des requêtes HTTP sortantes vers les points de terminaison d'autorisation, de jeton et d'userinfo de ce fournisseur. Configurer un fournisseur via les paramètres `GOTRUE_EXTERNAL_*` ou une API d'administration est une action administrative, et ce faisant, cela implique une confiance envers les hôtes et les URLs qui seront contactés.
Le réseau dans lequel Auth s'exécute doit être durci afin que ces connexions sortantes ne puissent pas atteindre des ressources internes que vous ne souhaitez pas exposer, telles que les adresses `localhost`/loopback ou les points de terminaison de métadonnées cloud (par exemple `169.254.169.254`). Cela importe particulièrement pour les fournisseurs avec des points de terminaison configurables ou découvrables par l'administrateur (par exemple les fournisseurs OAuth/OIDC personnalisés), où une URL mal configurée ou malveillante pourrait autrement être utilisée pour atteindre l'infrastructure interne.
#### OAuth Apple
Pour essayer l'authentification externe avec Apple en local, vous devrez procéder comme suit :
1. Remappez localhost vers \<my_custom_dns \> dans votre configuration `/etc/hosts`.
2. Configurez Auth pour servir le trafic HTTPS sur localhost en remplaçant `ListenAndServe` dans [api.go](https://github.com/supabase/auth/blob/master/internal/api/api.go) par : ```
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. Générez le fichier crt et la clé. Voir [ici](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) pour plus d'informations.
4. Générez le `GOTRUE_EXTERNAL_APPLE_SECRET` en suivant ce [post](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003) !
### Email
L'envoi d'e-mails n'est pas obligatoire, mais il est fortement recommandé pour la récupération du mot de passe.
S'il est activé, vous devez fournir les valeurs requises ci-dessous.```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**
The `From` email address for all emails sent.
→ L'adresse e-mail `From` pour tous les e-mails envoyés.
`SMTP_HOST` - `string` **required**
The mail server hostname to send emails through.
→ Le nom d'hôte du serveur de messagerie par lequel envoyer les e-mails.
`SMTP_PORT` - `number` **required**
The port number to connect to the mail server on.
→ Le numéro de port pour se connecter au serveur de messagerie.
`SMTP_USER` - `string`
If the mail server requires authentication, the username to use.
→ Si le serveur de messagerie nécessite une authentification, le nom d'utilisateur à utiliser.
`SMTP_PASS` - `string`
If the mail server requires authentication, the password to use.
→ Si le serveur de messagerie nécessite une authentification, le mot de passe à utiliser.
`SMTP_MAX_FREQUENCY` - `number`
Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email. The value is the number of seconds. Defaults to 900 (15 minutes).
→ Contrôle la durée minimale qui doit s'écouler avant l'envoi d'un autre e-mail de confirmation d'inscription ou de réinitialisation de mot de passe. La valeur est exprimée en secondes. Par défaut, 900 (15 minutes).
`SMTP_SENDER_NAME` - `string`
Sets the name of the sender. Defaults to the `SMTP_ADMIN_EMAIL` if not used.
→ Définit le nom de l'expéditeur. Par défaut, `SMTP_ADMIN_EMAIL` si non utilisé.
`MAILER_AUTOCONFIRM` - `bool`
If you do not require email confirmation, you may set this to `true`. Defaults to `false`.
→ Si vous n'exigez pas de confirmation par e-mail, vous pouvez définir ceci sur `true`. Par défaut, `false`.
`MAILER_OTP_EXP` - `number`
Controls the duration an email link or OTP is valid for.
→ Contrôle la durée de validité d'un lien e-mail ou d'un OTP.
`MAILER_URLPATHS_INVITE` - `string`
URL path to use in the user invite email. Defaults to `/verify`.
→ Chemin d'URL à utiliser dans l'e-mail d'invitation de l'utilisateur. Par défaut, `/verify`.
`MAILER_URLPATHS_CONFIRMATION` - `string`
URL path to use in the signup confirmation email. Defaults to `/verify`.
→ Chemin d'URL à utiliser dans l'e-mail de confirmation d'inscription. Par défaut, `/verify`.
`MAILER_URLPATHS_RECOVERY` - `string`
URL path to use in the password reset email. Defaults to `/verify`.
→ Chemin d'URL à utiliser dans l'e-mail de réinitialisation de mot de passe. Par défaut, `/verify`.
`MAILER_URLPATHS_EMAIL_CHANGE` - `string`
URL path to use in the email change confirmation email. Defaults to `/verify`.
→ Chemin d'URL à utiliser dans l'e-mail de confirmation de changement d'adresse e-mail. Par défaut, `/verify`.
`MAILER_SUBJECTS_INVITE` - `string`
Email subject to use for user invite. Defaults to `You've been invited`.
→ Objet de l'e-mail à utiliser pour l'invitation d'un utilisateur. Par défaut, `You've been invited`.
`MAILER_SUBJECTS_CONFIRMATION` - `string`
Email subject to use for signup confirmation. Defaults to `Confirm your email address`.
→ Objet de l'e-mail à utiliser pour la confirmation d'inscription. Par défaut, `Confirm your email address`.
`MAILER_SUBJECTS_RECOVERY` - `string`
Email subject to use for password reset. Defaults to `Reset your password`.
→ Objet de l'e-mail à utiliser pour la réinitialisation de mot de passe. Par défaut, `Reset your password`.
`MAILER_SUBJECTS_MAGIC_LINK` - `string`
Email subject to use for magic link email. Defaults to `Your sign-in link`.
→ Objet de l'e-mail à utiliser pour l'e-mail de lien magique. Par défaut, `Your sign-in link`.
`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`
Email subject to use for email change confirmation. Defaults to `Confirm your new email address`.
→ Objet de l'e-mail à utiliser pour la confirmation de changement d'adresse e-mail. Par défaut, `Confirm your new email address`.
`MAILER_SUBJECTS_REAUTHENTICATION` - `string`
Email subject to use for reauthentication. Defaults to `{{ .Token }} is your verification code`.
→ Objet de l'e-mail à utiliser pour la réauthentification. Par défaut, `{{ .Token }} is your verification code`.
`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`
Email subject to use for password changed notification. Defaults to `Your password was changed`.
→ Objet de l'e-mail à utiliser pour la notification de changement de mot de passe. Par défaut, `Your password was changed`.
`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`
Email subject to use for email changed notification. Defaults to `Your email address was changed`.
→ Objet de l'e-mail à utiliser pour la notification de changement d'adresse e-mail. Par défaut, `Your email address was changed`.
`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`
Email subject to use for phone changed notification. Defaults to `Your phone number was changed`.
→ Objet de l'e-mail à utiliser pour la notification de changement de numéro de téléphone. Par défaut, `Your phone number was changed`.
`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`
Email subject to use for identity linked notification. Defaults to `A new sign-in method was linked to your account`.
→ Objet de l'e-mail à utiliser pour la notification de liaison d'identité. Par défaut, `A new sign-in method was linked to your account`.
`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`
Email subject to use for identity unlinked notification. Defaults to `A sign-in method was removed from your account`.
→ Objet de l'e-mail à utiliser pour la notification de déliaison d'identité. Par défaut, `A sign-in method was removed from your account`.
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`
Email subject to use for verification method added notification. Defaults to `A new verification method was added to your account`.
→ Objet de l'e-mail à utiliser pour la notification d'ajout d'une méthode de vérification. Par défaut, `A new verification method was added to your account`.
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`
Email subject to use for verification method removed notification. Defaults to `A verification method was removed from your account`.
→ Objet de l'e-mail à utiliser pour la notification de suppression d'une méthode de vérification. Par défaut, `A verification method was removed from your account`.
`MAILER_TEMPLATES_INVITE` - `string`
URL path to an email template to use when inviting a user. (e.g. `https://www.example.com/path-to-email-template.html`)
`SiteURL`, `Email`, and `ConfirmationURL` variables are available.
Default Content (if template is unavailable):
→ Chemin d'URL vers un modèle d'e-mail à utiliser lors de l'invitation d'un utilisateur. (p. ex. `https://www.example.com/path-to-email-template.html`)
Les variables `SiteURL`, `Email` et `ConfirmationURL` sont disponibles.
Contenu par défaut (si le modèle n'est pas 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`
Chemin URL vers un modèle d'email à utiliser lors de la confirmation d'une inscription. (par ex. `https://www.example.com/path-to-email-template.html`)
Les variables `SiteURL`, `Email` et `ConfirmationURL` sont disponibles.
Contenu par défaut (si le modèle est indisponible) :```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`
Chemin URL vers un modèle d'email à utiliser lors de la réinitialisation d'un mot de passe. (p. ex. `https://www.example.com/path-to-email-template.html`)
Les variables `SiteURL`, `Email` et `ConfirmationURL` sont disponibles.
Contenu par défaut (si le modèle est indisponible) :```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`
Chemin d'URL vers un modèle d'e-mail à utiliser lors de l'envoi d'un lien magique. (par ex. `https://www.example.com/path-to-email-template.html`)
Les variables `SiteURL`, `Email` et `ConfirmationURL` sont disponibles.
Contenu par défaut (si le modèle n'est pas 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`
Chemin URL vers un modèle d'e-mail à utiliser lors de la confirmation du changement d'une adresse e-mail. (par ex. `https://www.example.com/path-to-email-template.html`)
Les variables `SiteURL`, `Email`, `NewEmail` et `ConfirmationURL` sont disponibles.
Contenu par défaut (si le modèle n'est pas 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>
```
---
[Read more](https://github.com/supabase/auth)