Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/supabase/auth
Authentification et AutorisationGestion des IdentitésGestion des Identités et des Accès (IAM)Authentification
GitHubsupabase/auth

auth

Une API basée sur JWT pour gérer les utilisateurs et émettre des tokens JWT.

Voir le dépôt
2.5k745il y a 3 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Auth - Authentification et gestion des utilisateurs par Supabase

Coverage Status

Auth est un serveur de gestion des utilisateurs et d'authentification écrit en Go qui alimente les fonctionnalités de Supabase, 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, 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.

Table des matières

  • Démarrage rapide
  • Exécution en production
  • Configuration
  • Endpoints

Démarrage rapide

Créez un fichier .env pour stocker vos propres variables d'environnement personnalisées. Voir 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
root@kitploit:~
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/HEAD/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.

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

root@kitploit:~
`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

root@kitploit:~
`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 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 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=,x-honeycomb-dataset=auth"

root@kitploit:~
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

root@kitploit:~
#### 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, et 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

root@kitploit:~
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/HEAD/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")
        }
    }
  1. Générez le fichier crt et la clé. Voir ici pour plus d'informations.
  2. Générez le GOTRUE_EXTERNAL_APPLE_SECRET en suivant ce post !

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 GOTRUE_SMTP_USER=[email protected] GOTRUE_SMTP_PASS=correcthorsebatterystaple GOTRUE_SMTP_ADMIN_EMAIL=[email protected] GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm"

root@kitploit:~
`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="{{ .ConfirmationURL }}">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

Confirm your email address

Follow the link below to confirm this email address and finish signing up.

Confirm email address

``` `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

Reset your password

We received a request to reset your password. Follow the link below to choose a new one.

Reset password

If you didn't request this, you can safely ignore this email.

``` `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

Your sign-in link

Follow the link below to sign in. This link expires shortly and can only be used once.

Sign in

``` `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

Confirm your new email address

Follow the link below to confirm {{ .NewEmail }} as your new email address.

Confirm new email address

If you didn't request this change, you can safely ignore this email.

``` `MAILER_TEMPLATES_REAUTHENTICATION` - `string`

Chemin URL vers un modèle d'e-mail à utiliser lors de la réauthentification d'un utilisateur. (par ex. https://www.example.com/path-to-email-template.html) La variable Token est disponible.

Contenu par défaut (si le modèle est indisponible) :```html

Your verification code

Use the code below to verify your identity. It expires shortly.

{{ .Token }}

``` `MAILER_TEMPLATES_PASSWORD_CHANGED_NOTIFICATION` - `string`

Chemin URL vers un modèle d'e-mail à utiliser pour informer un utilisateur que son mot de passe a été modifié. (p. ex. https://www.example.com/path-to-email-template.html) Les variables Email sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

Your password was changed

The password for your account was recently changed.

If you didn't make this change, reset your password and contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_PASSWORD_CHANGED_ENABLED` - `bool`

Indique si un e-mail de notification doit être envoyé lorsque le mot de passe d'un utilisateur est modifié. Par défaut : false.

MAILER_TEMPLATES_EMAIL_CHANGED_NOTIFICATION - string

Chemin URL vers un modèle d'e-mail à utiliser lors de la notification à un utilisateur que son adresse e-mail a été modifiée. (ex. https://www.example.com/path-to-email-template.html) Les variables Email et OldEmail sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

Your email address was changed

The email address for your account was changed from {{ .OldEmail }} to {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_EMAIL_CHANGED_ENABLED` - `bool`

Indique s'il faut envoyer un e-mail de notification lorsque l'adresse e-mail d'un utilisateur est modifiée. Par défaut, false.

GOTRUE_MAILER_TEMPLATES_PHONE_CHANGED_NOTIFICATION - string

Chemin d'accès URL vers un modèle d'e-mail à utiliser pour notifier un utilisateur que son numéro de téléphone a été modifié. (par ex. https://www.example.com/path-to-email-template.html) Les variables Email, Phone et OldPhone sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

Your phone number was changed

The phone number for your account was changed from {{ .OldPhone }} to {{ .Phone }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_PHONE_CHANGED_ENABLED` - `bool`

Indique s'il faut envoyer un e-mail de notification lorsque le numéro de téléphone d'un utilisateur est modifié. Par défaut : false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION - string

Chemin URL vers un modèle d'e-mail à utiliser pour notifier un utilisateur qu'une méthode de connexion a été liée à son compte. (par ex. https://www.example.com/path-to-email-template.html) Les variables Email et Provider sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

A new sign-in method was linked

Your {{ .Provider }} account was linked as a new sign-in method for {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_LINKED_ENABLED` - `bool`

Indique s'il faut envoyer un e-mail de notification lorsqu'une méthode de connexion est liée au compte d'un utilisateur. Par défaut : false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_UNLINKED_NOTIFICATION - string

Chemin d'accès URL d'un modèle d'e-mail à utiliser pour notifier un utilisateur qu'une méthode de connexion a été retirée de son compte. (par ex. https://www.example.com/path-to-email-template.html) Les variables Email et Provider sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

A sign-in method was removed

Your {{ .Provider }} account was removed as a sign-in method for {{ .Email }}.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_UNLINKED_ENABLED` - `bool`

Indique si un e-mail de notification doit être envoyé lorsqu'une méthode de connexion est retirée du compte d'un utilisateur. Par défaut, la valeur est false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_ENROLLED_NOTIFICATION - string

Chemin d'URL vers un modèle d'e-mail à utiliser pour notifier un utilisateur qu'une nouvelle méthode de vérification a été ajoutée à son compte. (p. ex. https://www.example.com/path-to-email-template.html) Les variables Email et FactorType sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

A new verification method was added

Sign-in verification method {{ .FactorType }} was added to your account.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_ENROLLED_ENABLED` - `bool`

Détermine si un e-mail de notification est envoyé lorsqu'une nouvelle méthode de vérification est ajoutée au compte d'un utilisateur. Par défaut, false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_UNENROLLED_NOTIFICATION - string

Chemin d'URL vers un modèle d'e-mail à utiliser pour notifier un utilisateur qu'une méthode de vérification a été supprimée de son compte. (par ex. https://www.example.com/path-to-email-template.html) Les variables Email et FactorType sont disponibles.

Contenu par défaut (si le modèle n'est pas disponible) :```html

A verification method was removed

Sign-in verification method {{ .FactorType }} was removed from your account.

If you didn't make this change, contact support immediately.

``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_UNENROLLED_ENABLED` - `bool`

S'il faut envoyer un e-mail de notification lorsqu'une méthode de vérification est supprimée du compte d'un utilisateur. Par défaut, false.

Authentification par téléphone

SMS_AUTOCONFIRM - bool

Si vous n'avez pas besoin de la confirmation par téléphone, vous pouvez définir ceci sur true. Par défaut, false.

SMS_MAX_FREQUENCY - number

Contrôle la durée minimale qui doit s'écouler avant l'envoi d'un autre SMS OTP. La valeur est exprimée en secondes. Par défaut, 60 (1 minute).

SMS_OTP_EXP - number

Contrôle la durée de validité d'un SMS OTP.

SMS_OTP_LENGTH - number

Contrôle le nombre de chiffres du SMS OTP envoyé.

SMS_PROVIDER - string

Les options disponibles sont : twilio, messagebird, textlocal et vonage

Ensuite, vous pouvez utiliser vos informations d'identification twilio :

  • SMS_TWILIO_ACCOUNT_SID
  • SMS_TWILIO_AUTH_TOKEN
  • SMS_TWILIO_MESSAGE_SERVICE_SID - peut être défini sur votre numéro de mobile expéditeur twilio

Ou les informations d'identification Messagebird, qui peuvent être obtenues dans le Dashboard :

  • SMS_MESSAGEBIRD_ACCESS_KEY - votre clé d'accès Messagebird
  • SMS_MESSAGEBIRD_ORIGINATOR - expéditeur SMS (votre numéro de téléphone Messagebird avec + ou le nom de l'entreprise)

CAPTCHA

  • Si activé, le CAPTCHA vérifiera le corps de la requête pour le champ captcha_token et enverra une demande de vérification au fournisseur CAPTCHA.

SECURITY_CAPTCHA_ENABLED - string

Indique si le middleware CAPTCHA est activé

SECURITY_CAPTCHA_PROVIDER - string

pour le moment, les seules options prises en charge sont : hCaptcha et Turnstile

  • SECURITY_CAPTCHA_SECRET - string
  • SECURITY_CAPTCHA_TIMEOUT - string

Récupérez-les depuis le compte hcaptcha ou turnstile

Réauthentification

SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION - bool

Exiger une réauthentification lors de la mise à jour du mot de passe.

Connexions anonymes

GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED - bool

Utilisez ceci pour activer/désactiver les connexions anonymes.

Transfert d'adresse IP

GOTRUE_SECURITY_SB_FORWARDED_FOR_ENABLED - bool

Active le transfert d'adresse IP à l'aide de l'en-tête de requête HTTP Sb-Forwarded-For. Lorsque cette option est activée, Auth analyse la première valeur de cet en-tête comme une adresse IP et l'utilise pour le suivi de l'adresse IP et la limitation du débit. Assurez-vous que cet en-tête est entièrement fiable avant d'activer cette fonctionnalité en ne le transmettant qu'à partir de clients ou de proxys de confiance.

Points de terminaison

Auth expose les points de terminaison suivants :

GET /settings

Renvoie les paramètres publiquement disponibles pour cette instance d'authentification.```json { "external": { "apple": true, "azure": true, "bitbucket": true, "discord": true, "facebook": true, "figma": true, "github": true, "gitlab": true, "google": true, "keycloak": true, "linkedin": true, "notion": true, "slack": true, "snapchat": true, "spotify": true, "twitch": true, "twitter": true, "workos": true }, "disable_signup": false, "autoconfirm": false }

root@kitploit:~
### **POST, PUT /admin/users/<user_id>**

Crée (POST) ou met à jour (PUT) l'utilisateur en fonction du `user_id` spécifié. Le champ `ban_duration` accepte les unités de temps suivantes : "ns", "us", "ms", "s", "m", "h". Consultez [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) pour plus de détails sur le format utilisé.```js
headers:
{
  "Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // requires a role claim that can be set in the GOTRUE_JWT_ADMIN_ROLES env var
}

body:
{
  "role": "test-user",
  "email": "[email protected]",
  "phone": "12345678",
  "password": "secret", // only if type = signup
  "email_confirm": true,
  "phone_confirm": true,
  "user_metadata": {},
  "app_metadata": {},
  "ban_duration": "24h" or "none" // to unban a user
}

POST /admin/generate_link

Retourne le lien d'action e-mail correspondant en fonction du type spécifié. Entre autres, la réponse contient également les paramètres de requête du lien d'action sous forme de champs JSON séparés pour plus de commodité (ainsi que l'OTP e-mail à partir duquel le jeton correspondant est généré).```js headers: { "Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // admin role required }

body: { "type": "signup" or "magiclink" or "recovery" or "invite" or "email_change_current" or "email_change_new", "email": "[email protected]", "password": "secret", // only if type = signup "data": { ... }, // only if type = signup "redirect_to": "https://supabase.io" // Redirect URL to send the user to after an email action. Defaults to SITE_URL.

}

root@kitploit:~
Retourne```js
{
  "action_link": "http://localhost:9999/verify?token=TOKEN&type=TYPE&redirect_to=REDIRECT_URL",
  "email_otp": "EMAIL_OTP",
  "hashed_token": "TOKEN",
  "verification_type": "TYPE",
  "redirect_to": "REDIRECT_URL",
  ...
}

POST /signup

Enregistrer un nouvel utilisateur avec un email et un mot de passe.```json { "email": "[email protected]", "password": "secret" }

root@kitploit:~
retourne:```js
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

// if sign up is a duplicate then faux data will be returned
// as to not leak information about whether a given email
// has an account with your service or not

Enregistrer un nouvel utilisateur avec un numéro de téléphone et un mot de passe.```js { "phone": "12345678", // follows the E.164 format "password": "secret" }

root@kitploit:~
Retourne :```js
{
  "id": "11111111-2222-3333-4444-5555555555555", // if duplicate sign up, this ID will be faux
  "phone": "12345678",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

si AUTOCONFIRM est activé et que l'inscription est un doublon, alors l'endpoint retournera :```json { "code": 400, "msg": "User already registered" }

root@kitploit:~
### **POST /resend**

Permet à un utilisateur de renvoyer un OTP existant de type signup, sms, email_change ou phone_change.```json
{
  "email": "[email protected]",
  "type": "signup"
}

Aperçu des fonctionnalités côté serveur

Gestion des sessions

Contrôle d'accès

Limitations

  1. Communication inter-onglets multi-origines : les API Broadcast Channel et SharedWorker ne fonctionnent que lorsque tous les onglets sont sur la même origine. Pour les scénarios multi-origines, un relais WebSocket est nécessaire. Cela ajoute de la complexité de déploiement et de la latence.

  2. Restriction par adresse MAC : les navigateurs modernes n'exposent pas l'adresse MAC du client à JavaScript. Par conséquent, la restriction par adresse MAC est implémentée via une application d'aide dans la barre système. Vous devez compiler le binaire d'aide et définir le chemin dans le fichier de configuration.

  3. Limite de connexions WebSocket : chaque onglet maintient sa propre connexion WebSocket. Avec de nombreux onglets ouverts, cela peut consommer des ressources serveur importantes. Il s'agit d'une limitation standard des architectures basées sur WebSocket.

  4. Persistance des sessions : les sessions ne sont pas persistées lors des redémarrages du serveur. Les utilisateurs connectés doivent se ré-authentifier après un redémarrage du serveur.

  5. Temps et sécurité : l'implémentation actuelle met l'accent sur la facilité d'installation et de démonstration. Une utilisation en production nécessite un durcissement de sécurité supplémentaire, notamment :

    • HTTPS/WSS pour toutes les communications
    • Une gestion de session renforcée et la rotation des jetons
    • La limitation de débit et la prévention des abus.

Pour les outils d'automatisation

Accès depuis un appareil mobile (Alpha)

Remarque : L'accès depuis un appareil mobile est actuellement en Alpha et peut ne pas fonctionner de manière fiable sur tous les appareils. Cette fonctionnalité permet d'accéder aux services basés sur navigateur (http://localhost:8000) ou à SSH basé sur le web (http://localhost:8888). Elle n'est pas conçue pour les clients SSH/VNC natifs.

Points clés

  1. Accès à localhost : Le navigateur du téléphone doit pouvoir atteindre l'adresse IP du serveur.
  2. Partage de session : Les sessions mobiles sont suivies et visibles dans le tableau de bord des appareils.
  3. Accès SSH : SSH basé sur le web est disponible à l'adresse http://<server-ip>:8888.
  4. Accès VNC : VNC basé sur le web est disponible à l'adresse http://<server-ip>:8000.
  5. Projets futurs : La prise en charge des clients SSH/VNC natifs et les invites d'installation PWA seront ajoutées.

Contribuer

Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.

Qui est à l'origine de ce projet ?

HTerm est développé par des chercheurs et des ingénieurs chez HVQ-Network-Utility. Nous nous engageons à fournir des utilitaires réseau de haute qualité, sécurisés et conviviaux. Le projet est open source et gratuit.

Licence

Ce projet est sous licence GNU General Public License v3.0.```json { "phone": "12345678", "type": "sms" }

root@kitploit:~
returns:```json
{
  "message_id": "msgid123456"
}

POST /invite

Invite un nouvel utilisateur avec un email. Cet endpoint nécessite que le JWT service_role ou supabase_admin soit défini comme en-tête Auth Bearer :

p. ex.```js headers: { "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" }

root@kitploit:~
(empty)```json
{
  "email": "[email protected]"
}

Retourne :```json { "id": "11111111-2222-3333-4444-5555555555555", "email": "[email protected]", "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", "created_at": "2016-05-15T19:53:12.368652374-07:00", "updated_at": "2016-05-15T19:53:12.368652374-07:00", "invited_at": "2016-05-15T19:53:12.368652374-07:00" }

root@kitploit:~
### **POST /verify**

Vérifiez une inscription ou une récupération de mot de passe. Type peut être `signup`, `recovery`, `invite`, `magiclink`, `email_change`, `sms`, ou `phone_change`
et le `token` est un jeton retourné par `/signup` ou `/recover`.```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email"
}

password est requis pour la vérification de l'inscription si aucun mot de passe existant n'est présent.

Retourne :```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token", "type": "signup | recovery | invite | magiclink | email_change | sms | phone_change" }

root@kitploit:~
Vérifiez une inscription par téléphone ou un OTP par SMS. Le type doit être défini sur `sms`.```json
{
  "type": "sms",
  "token": "confirmation-otp-delivered-in-sms",
  "redirect_to": "https://supabase.io",
  "phone": "phone-number-sms-otp-was-delivered-to"
}

Renvoie :```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }

root@kitploit:~
### **GET /verify**

Vérifiez une inscription ou une récupération de mot de passe. Le type peut être `signup`, `recovery`, `magiclink`, `invite` ou `email_change`
et le `token` est un jeton renvoyé par `/signup`, `/recover` ou `/magiclink`.

paramètres de requête :```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email",
  "redirect_to": "https://supabase.io"
}

L'utilisateur sera connecté et redirigé vers :``` SITE_URL/#access_token=jwt-token-representing-the-user&token_type=bearer&expires_in=3600&refresh_token=a-refresh-token&type=invite

root@kitploit:~
Votre application doit détecter les paramètres de requête dans le fragment et les utiliser pour définir la session (supabase-js le fait automatiquement)

Vous pouvez utiliser le paramètre `type` pour rediriger l'utilisateur vers un formulaire de définition de mot de passe dans le cas de `invite` ou `recovery`,
ou afficher un message de confirmation de compte/bienvenue dans le cas de `signup`, ou l'orienter vers un flux d'intégration supplémentaire

### **POST /otp**

Mot de passe à usage unique. Délivre un lien magique ou un OTP par SMS à l'utilisateur selon que le corps de la requête contient une clé "email" ou "phone".

Si `"create_user": true`, l'utilisateur ne sera pas automatiquement inscrit si l'utilisateur n'existe pas.```js
{
  "phone": "12345678" // follows the E.164 format
  "create_user": true
}

OU```js // exactly the same as /magiclink { "email": "[email protected]" "create_user": true }

root@kitploit:~
Retourne :```json
{}

POST /magiclink (recommandé d'utiliser /otp à la place. Voir ci-dessus.)

Magic Link. Envoie un lien (par ex. /verify?type=magiclink&token=fgtyuf68ddqdaDd) à l'utilisateur en fonction de son adresse e-mail, qu'il peut utiliser pour échanger un access_token.

Par défaut, les Magic Links ne peuvent être envoyés qu'une fois toutes les 60 secondes.```json { "email": "[email protected]" }

root@kitploit:~
Retourne:```json
{}

Lorsque le lien magique est cliqué, il redirigera vers <SITE_URL>#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=magiclink (voir /verify ci-dessus)

POST /recover

Récupération de mot de passe. Enverra un e-mail de récupération de mot de passe à l'utilisateur en fonction de l'adresse e-mail.

Par défaut, les liens de récupération ne peuvent être envoyés qu'une fois toutes les 60 secondes.```json { "email": "[email protected]" }

root@kitploit:~
Renvoie :```json
{}

POST /token

Ceci est un point de terminaison OAuth2 qui implémente actuellement les types d'octroi password et refresh_token

paramètres de requête :``` ?grant_type=password

root@kitploit:~
body:```js
// Email login
{
  "email": "[email protected]",
  "password": "somepassword"
}

// Phone login
{
  "phone": "12345678",
  "password": "somepassword"
}

ou

paramètres de requête:``` grant_type=refresh_token

root@kitploit:~
corps :```json
{
  "refresh_token": "a-refresh-token"
}

Une fois que vous disposez d'un jeton d'accès, vous pouvez accéder aux méthodes nécessitant une authentification en définissant l'en-tête Authorization: Bearer YOUR_ACCESS_TOKEN_HERE.

Renvoie :```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }

root@kitploit:~
### **GET /user**

Obtenir l'objet JSON de l'utilisateur connecté (nécessite une authentification)

Renvoie :```json
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

PUT /user

Mettre à jour un utilisateur (authentification requise). Outre la modification de l'e-mail/mot de passe, cette méthode peut être utilisée pour définir des données utilisateur personnalisées. La modification de l'e-mail entraînera l'envoi d'un lien magique.```json { "email": "[email protected]", "password": "new-password", "phone": "+123456789", "data": { "key": "value", "number": 10, "admin": false } }

root@kitploit:~
Retourne:```json
{
  "id": "11111111-2222-3333-4444-5555555555555",
  "email": "[email protected]",
  "email_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "phone": "+123456789",
  "phone_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00"
}

Si GOTRUE_SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION est activé, l'utilisateur devra d'abord se réauthentifier.```json { "password": "new-password", "nonce": "123456" }

root@kitploit:~
### **GET /reauthenticate**

Envoie un nonce à l'adresse e-mail de l'utilisateur (de préférence) ou à son téléphone. Cet endpoint nécessite que l'utilisateur soit connecté / authentifié au préalable. L'utilisateur doit disposer d'une adresse e-mail ou d'un numéro de téléphone pour que le nonce puisse être envoyé avec succès.```js
headers: {
  "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO"
}

POST /logout

Déconnecter un utilisateur (authentification requise).

Cela révoquera tous les jetons de rafraîchissement de l'utilisateur. N'oubliez pas que les jetons JWT resteront valides pour l'authentification sans état jusqu'à leur expiration.

GET /authorize

Obtenir le access_token depuis un fournisseur oauth externe

paramètres de requête :``` provider=apple | azure | bitbucket | discord | facebook | figma | github | gitlab | google | keycloak | linkedin | notion | slack | snapchat | spotify | twitch | twitter | workos

scopes=<optional additional scopes depending on the provider (email and name are requested by default)>

root@kitploit:~
Redirects to provider and then to `/callback`

Pour la configuration spécifique à Apple, voir : <https://github.com/supabase/auth#apple-oauth>

### **GET /callback**

Le fournisseur externe doit rediriger vers ce point de terminaison

Redirige vers `<GOTRUE_SITE_URL>#access_token=<access_token>&refresh_token=<refresh_token>&provider_token=<provider_oauth_token>&expires_in=3600&provider=<provider_name>`
Si des scopes supplémentaires ont été demandés, `provider_token` sera renseigné ; vous pouvez l'utiliser pour récupérer des données supplémentaires auprès du fournisseur ou interagir avec ses services.
Télécharger l’outil
twitter
workos
FonctionnalitéTypeCommunicationFonctionne avec un seul onglet ouvert ?
Broadcast Channel APIMême origineUnidirectionnelleOui (mais aucun pair à qui diffuser)
SharedWorker APIMême origineBidirectionnelleOui (mais aucun pair avec qui communiquer)
localStorageMême origineUnidirectionnelle (via événements)Oui (mais aucun événement déclenché)
WebSocket broadcastOrigine croiséeBidirectionnelleOui (idéal pour les origines croisées)
FonctionnalitéDescriptionImplémentation
Connexions activesSuivre les clients WebSocket actuellement connectésMappe les sessions utilisateur à leurs connexions WebSocket
Expiration de sessionDéconnecter automatiquement les sessions inactivesDélai configurable (défaut : 30 min)
Détection de changement d'appareilDétecter quand une session passe à un autre appareil/navigateurLe changement d'IP/MAC déclenche une ré-authentification
Diffusion de déconnexionNotifier les autres onglets lorsque l'utilisateur se déconnecteCanal de diffusion pour les événements de déconnexion
FonctionnalitéDescriptionImplémentation
Restriction par adresse MACRestreindre l'accès des appareils avec une liste blancheVérifier l'adresse MAC avant d'établir le WebSocket
Restriction par adresse IPRestreindre l'accès aux adresses IP autoriséesVérifier l'IP du client par rapport à la liste blanche
Contrôle d'accès basé sur les rôlesLimiter les fonctionnalités en fonction des rôles utilisateurImplémenter le RBAC pour tous les points de terminaison
Gestion des utilisateursCréer, mettre à jour, désactiver des comptes utilisateurInterface d'administration pour les opérations utilisateur
FonctionnalitéTerminal localDistantAuto-détectionSpécification manuelle
Playwright✅ Prise en charge complète✅ Prise en charge complète✅ Détection automatique✅ Remplacement manuel
Selenium✅ Prise en charge complète✅ Prise en charge complète✅ Détection automatique✅ Remplacement manuel