Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
auth — Un'API basata su JWT per la gestione degli utenti e l'emissione di token JWT | Kitploit
Strumenti/GitHubGitHub/supabase/auth
Autenticazione e AutorizzazioneGestione IdentitàGestione Identità e Accessi (IAM)Autenticazione
GitHubsupabase/auth

auth

Un'API basata su JWT per la gestione degli utenti e l'emissione di token JWT

Vedi Repository
2.5k7453 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Auth - Autenticazione e Gestione Utenti di Supabase

Coverage Status

Auth è un server di gestione utenti e autenticazione scritto in Go che alimenta le funzionalità di Supabase, come:

  • Emissione di JWT
  • Row Level Security con PostgREST
  • Gestione utenti
  • Accesso con email, password, magic link, numero di telefono
  • Accesso con provider esterni (Google, Apple, Facebook, Discord, ...)

È originariamente basato sull'eccellente codebase GoTrue di Netlify, tuttavia entrambi si sono discostati in modo significativo per caratteristiche e funzionalità.

Se desideri contribuire al progetto, fa riferimento alla guida al contributo.

Table of Contents

  • Quick Start
  • Running in Production
  • Configuration
  • Endpoints

Avvio Rapido

Crea un file .env per memorizzare le tue variabili d'ambiente personalizzate. Vedi example.env

  1. Avvia il database Postgres locale in un container Postgres: docker-compose -f docker-compose-dev.yml up postgres
  2. Compila il binario auth: make build . Dovresti vedere un output simile a questo:```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. Esegui il binario auth: `./auth`

### Se hai Docker installato

Crea un file `.env.docker` per memorizzare le tue variabili d'ambiente personalizzate. Vedi [`example.docker.env`](https://github.com/supabase/auth/blob/HEAD/example.docker.env)

1. `make build`
2. `make dev`
3. `docker ps` dovrebbe mostrare due container Docker (`auth-auth-1` e `auth-postgres-1`)
4. Tutto qui! Visita l'[endpoint di health check](http://localhost:9999/health) per confermare che auth sia in esecuzione.

## Esecuzione in produzione

Eseguire un server di autenticazione in produzione non è un'impresa facile. Ti
consigliamo di utilizzare [Supabase Auth](https://supabase.com/auth), che riceve regolari
aggiornamenti di sicurezza.

In caso contrario, assicurati di predisporre un processo per aggiornare tempestivamente all'
ultima versione. Puoi farlo seguendo questo repository, in particolare le
sezioni [Releases](https://github.com/supabase/auth/releases) e [Security
Advisories](https://github.com/supabase/auth/security/advisories).

### Retrocompatibilità

Auth utilizza lo schema [Semantic Versioning](https://semver.org). Ecco alcuni
ulteriori chiarimenti sulle garanzie di retrocompatibilità:

**Compatibilità API Go**

Auth non è pensato per essere usato come libreria Go. Non ci sono garanzie sulla
retrocompatibilità API quando usato in questo modo, a prescindere da quale
numero di versione cambi.

**Patch**

Le modifiche alla versione patch garantiscono la retrocompatibilità con:

- Oggetti del database (tabelle, colonne, indici, funzioni).
- API REST
- Struttura JWT
- Configurazione

Esempi garantiti:

- Una colonna non cambierà il suo tipo.
- Una tabella non cambierà la sua chiave primaria.
- Un indice non verrà rimosso.
- Un vincolo di unicità non verrà rimosso.
- Un'API REST non verrà rimossa.
- I parametri delle API REST funzioneranno in modo equivalente a prima (o meglio, se un bug
  è stato corretto).
- La configurazione non cambierà.

Esempi non garantiti:

- Una tabella potrebbe aggiungere nuove colonne.
- Le colonne in una tabella potrebbero essere riordinate.
- I vincoli non univoci potrebbero essere rimossi (controlli a livello di database, null, valori
  predefiniti).
- JWT potrebbe aggiungere nuove proprietà.

**Minor**

Le modifiche alla versione minor garantiscono la retrocompatibilità con:

- API REST
- Struttura JWT
- Configurazione

Eccezioni a queste garanzie saranno ammesse solo quando verranno trovati seri problemi
di sicurezza che non possono essere risolti in nessun altro modo.

Esempi garantiti:

- Le API esistenti potrebbero essere deprecate ma continueranno a funzionare per le prossime poche
  versioni minor.
- Le modifiche alla configurazione potrebbero diventare deprecate ma continueranno a funzionare per
  le prossime poche versioni minor.
- I JWT già emessi saranno accettati, ma i nuovi JWT potrebbero avere una
  struttura diversa (ma di solito simile).

Esempi non garantiti:

- Rimozione dei campi JWT dopo un avviso di deprecazione.
- Rimozione di alcune API dopo un avviso di deprecazione.
- Rimozione dell'accesso con provider esterni dopo un avviso di deprecazione.
- Eliminazione, troncamento, modifiche significative dello schema di tabelle, indici, viste,
  funzioni.

Puntiamo a fornire un avviso di deprecazione nei log di esecuzione per almeno due
versioni major o due settimane se vengono pubblicate più release. La compatibilità sarà
garantita finché l'avviso è attivo.

**Major**

Le modifiche alla versione major non garantiscono alcuna retrocompatibilità con
le versioni precedenti.

### Funzionalità ereditate

Alcune funzionalità ereditate dal codebase di Netlify non sono supportate da
Supabase e potrebbero essere rimosse senza preavviso in futuro. Questa è una
lista completa di tali funzionalità:

1. Multi-tenancy tramite la tabella `instances`, cioè il parametro di configurazione
   `GOTRUE_MULTI_INSTANCE_MODE`.
2. Utente di sistema (utente UUID zero).
3. Super admin tramite la colonna `is_super_admin`.
4. Informazioni di gruppo nei JWT tramite `GOTRUE_JWT_ADMIN_GROUP_NAME` e altri
   campi di configurazione.
5. Firma JWT. Supabase Auth supporta chiavi asimmetriche (RS256 di default;
   ECC/Ed25519 opzionali). HS256 è ancora supportato per compatibilità, ma
   migrare verso chiavi asimmetriche è consigliato per una validazione e una
   rotazione più semplici. Le future deprecazioni saranno annunciate nel changelog. Vedi la
   [guida JWT Signing Keys](https://supabase.com/docs/guides/auth/signing-keys) e
   [la guida JWTs](https://supabase.com/docs/guides/auth/jwts) per i dettagli.

Nota che questa non è una lista esaustiva e potrebbe cambiare.

### Buone pratiche per il self-hosting

Queste sono alcune buone pratiche da seguire quando si fa self-hosting per garantire la
retrocompatibilità con Auth:

1. Non modificare lo schema gestito da Auth. Puoi vedere tutte le
   migrazioni nella directory `migrations`.
2. Non fare affidamento sullo schema e sulla struttura dei dati nel database. Usa sempre
   le API di Auth e i JWT per dedurre informazioni sugli utenti.
3. Esegui sempre Auth dietro un proxy in grado di gestire TLS, come un load balancer, CDN,
   nginx o altro software simile.

## Configurazione

Puoi configurare Auth usando un file di configurazione chiamato `.env`,
variabili d'ambiente, o una combinazione di entrambi. Le variabili d'ambiente hanno il prefisso `GOTRUE_` e avranno sempre precedenza sui valori forniti tramite file.

### Livello principale```properties
GOTRUE_SITE_URL=https://example.netlify.com/

SITE_URL - string obbligatorio

L'URL di base in cui si trova il tuo sito. Attualmente utilizzato in combinazione con altre impostazioni per costruire gli URL usati nelle email. Qualsiasi URI che condivide un host con SITE_URL è un valore consentito per i parametri redirect_to (vedi /authorize ecc.).

URI_ALLOW_LIST - string

Un elenco separato da virgole di URI (ad es. "https://foo.example.com,https://*.foo.example.com,https://bar.example.com") che sono consentiti come destinazioni redirect_to valide. Il valore predefinito è []. Supporta il matching con caratteri jolly tramite globbing. Ad es. https://*.foo.example.com consentirà l'accettazione di https://a.foo.example.com e https://b.foo.example.com. Il globbing è supportato anche sui sottodomini. Ad es. https://foo.example.com/* consentirà l'accettazione di https://foo.example.com/page1 e https://foo.example.com/page2.

Per pattern glob più comuni, consulta il seguente link.

OPERATOR_TOKEN - string Solo modalità multi-istanza

Il segreto condiviso con un operatore (di solito Netlify) per questo microservizio. Utilizzato per verificare che le richieste siano state inoltrate tramite l'operatore e che i valori del payload possano essere considerati attendibili.

DISABLE_SIGNUP - bool

Quando la registrazione è disabilitata, l'unico modo per creare nuovi utenti è tramite inviti. Il valore predefinito è false, tutte le registrazioni abilitate.

GOTRUE_EXTERNAL_EMAIL_ENABLED - bool

Utilizza questa impostazione per disabilitare le registrazioni via email (gli utenti possono comunque utilizzare provider OAuth esterni per registrarsi / accedere)

GOTRUE_EXTERNAL_PHONE_ENABLED - bool

Utilizza questa impostazione per disabilitare le registrazioni via telefono (gli utenti possono comunque utilizzare provider OAuth esterni per registrarsi / accedere)

GOTRUE_RATE_LIMIT_HEADER - string

Header su cui applicare il rate limiting all'endpoint /token. Questo header deve essere impostato da un proxy upstream attendibile (come Kong o Envoy). Header come x-forwarded-for sono falsificabili e non possono essere considerati attendibili per il rate limiting quando forniti direttamente dal client.

GOTRUE_RATE_LIMIT_EMAIL_SENT - string

Limita il numero di email inviate all'ora sui seguenti endpoint: /signup, /invite, /magiclink, /recover, /otp e /user.

GOTRUE_PASSWORD_MIN_LENGTH - int

Lunghezza minima della password, il valore predefinito è 6.

GOTRUE_PASSWORD_REQUIRED_CHARACTERS - una stringa di set di caratteri separati da :. Una password deve contenere almeno un carattere di ciascun set per essere accettata. Per usare il carattere : è necessario precederlo con \.

GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED - bool

Se la rotazione del refresh token è abilitata, l'autenticazione rileverà automaticamente i tentativi dannosi di riutilizzare un refresh token revocato. Quando viene rilevato un tentativo dannoso, GoTrue revoca immediatamente tutti i token derivati dal token incriminato.

GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL - string

Questa impostazione è applicabile solo se GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED è abilitata. L'intervallo di riutilizzo per un refresh token consente di scambiare il refresh token più volte durante l'intervallo per supportare problemi di concorrenza o offline. Durante l'intervallo di riutilizzo, l'autenticazione non considererà l'uso di un token revocato come un tentativo dannoso e restituirà semplicemente il refresh token figlio.

Solo il precedente token revocato può essere riutilizzato. L'utilizzo di un vecchio refresh token molto prima dell'attuale refresh token valido attiverà il rilevamento del riutilizzo.

API```properties

GOTRUE_API_HOST=localhost PORT=9999 API_EXTERNAL_URL=http://localhost:9999

root@kitploit:~
`API_HOST` - `string`

Nome host su cui mettersi in ascolto.

`PORT` (senza prefisso) / `API_PORT` - `number`

Numero di porta su cui mettersi in ascolto. Il valore predefinito è `8081`.

`API_ENDPOINT` - `string` _Solo modalità multi-istanza_

Controlla su quale endpoint Netlify può accedere a questa API.

`API_EXTERNAL_URL` - `string` **obbligatorio**

L'URL su cui GoTrue potrebbe essere accessibile.

`REQUEST_ID_HEADER` - `string`

Se desideri ereditare un ID di richiesta dalla richiesta in arrivo, specifica il nome in questo valore.

### Database```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth

DB_DRIVER - string required

Sceglie il dialetto del database che desideri. Deve essere postgres.

DATABASE_URL (nessun prefisso) / DB_DATABASE_URL - string required

Stringa di connessione per il database.

GOTRUE_DB_MAX_POOL_SIZE - int

Imposta il numero massimo di connessioni aperte al database. Il valore predefinito è 0, che equivale a un numero di connessioni "illimitato".

DB_NAMESPACE - string

Aggiunge un prefisso a tutti i nomi delle tabelle.

Nota sulle migrazioni

Le migrazioni vengono applicate automaticamente quando esegui ./auth. Tuttavia, hai anche la possibilità di rieseguire le migrazioni tramite i seguenti metodi:

  • Se compilato localmente: ./auth migrate
  • Usando Docker: docker run --rm auth gotrue migrate

Registrazione```properties

LOG_LEVEL=debug # available without GOTRUE prefix (exception) GOTRUE_LOG_FILE=/var/log/go/auth.log

root@kitploit:~
`LOG_LEVEL` - `string`

Controlla quali livelli di log vengono emessi. Scegli tra `panic`, `fatal`, `error`, `warn`, `info` o `debug`. Il valore predefinito è `info`.

`LOG_FILE` - `string`

Se desideri che i log vengano scritti su un file, imposta `log_file` su un percorso file valido.

### Observability

Auth ha funzionalità di osservabilità di base integrate. È in grado di esportare
[OpenTelemetry](https://opentelemetry.io) metriche e trace verso un collector.

#### Tracing

Per abilitare il tracing, configura queste variabili:

`GOTRUE_TRACING_ENABLED` - `bool`

`GOTRUE_TRACING_EXPORTER` - `string` solo `opentelemetry` supportato

Assicurati di configurare anche la configurazione dell'[OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
per il tuo collector o servizio.

Ad esempio, se usi
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
dovresti impostare queste variabili standard OTLP di 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"

Metriche

Per abilitare le metriche configura queste variabili:

GOTRUE_METRICS_ENABLED - boolean

GOTRUE_METRICS_EXPORTER - string supporta solo opentelemetry e prometheus

Assicurati di configurare anche il OpenTelemetry Exporter per il tuo collector o servizio.

Se usi l'exporter prometheus, l'host e la porta del server possono essere configurati usando queste variabili standard OpenTelemetry:

OTEL_EXPORTER_PROMETHEUS_HOST - indirizzo IP, default 0.0.0.0

OTEL_EXPORTER_PROMETHEUS_PORT - numero di porta, default 9100

Le metriche vengono esportate sul percorso / del server.

Se usi l'exporter opentelemetry, le metriche vengono inviate al collector.

Ad esempio, se usi Honeycomb.io dovresti impostare queste variabili standard OTLP di 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=,x-honeycomb-dataset=auth"

root@kitploit:~
Nota che Honeycomb.io richiede un piano a pagamento per ingerire le metriche.

Se devi eseguire il debug di un problema con trace o metriche non inviate, puoi
impostare `DEBUG=true` per ottenere maggiori dettagli dall'OpenTelemetry SDK.

#### Attributi personalizzati delle risorse

Quando utilizzi gli exporter di tracing o metriche OpenTelemetry puoi definire
attributi personalizzati delle risorse usando la [variabile d'ambiente standard
`OTEL_RESOURCE_ATTRIBUTES`](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable).

Un attributo predefinito `auth.version` è fornito e contiene la versione di build.

#### Tracciamento delle route HTTP

Tutte le chiamate HTTP all'Auth API vengono tracciate. Le route utilizzano la versione parametrizzata
della route, e i valori dei parametri della route possono essere trovati come
attributo span `http.route.params.<route-key>`.

Ad esempio, la seguente richiesta:```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/

sarà tracciato come:``` http.method = GET http.route = /admin/users/{user_id} http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927

root@kitploit:~
#### Metriche del runtime Go e HTTP

Tutte le metriche del runtime Go sono esposte. Alcune metriche HTTP vengono anche raccolte
per impostazione predefinita.

### JSON Web Tokens (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify

JWT_SECRET - string obbligatorio

Il segreto usato per firmare i token JWT.

JWT_EXP - number

Per quanto tempo i token sono validi, in secondi. Il valore predefinito è 3600 (1 ora).

JWT_AUD - string

Il pubblico (audience) JWT predefinito. Usa gli audience per raggruppare gli utenti.

JWT_ADMIN_GROUP_NAME - string

Il nome del gruppo admin (se abilitato). Il valore predefinito è admin.

JWT_DEFAULT_GROUP_NAME - string

Il gruppo predefinito a cui assegnare tutti i nuovi utenti.

Provider di autenticazione esterni

Supportiamo apple, azure, bitbucket, discord, facebook, figma, github, gitlab, google, keycloak, linkedin, notion, snapchat, spotify, slack, twitch, e per l'autenticazione esterna.

Usa i nomi come chiavi sotto external per configurare ciascuno separatamente.```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:~
Non è richiesto alcun provider esterno, ma è necessario fornire i valori richiesti se si sceglie di abilitarne uno.

`EXTERNAL_X_ENABLED` - `bool`

Indica se questo provider esterno è abilitato o meno

`EXTERNAL_X_CLIENT_ID` - `string` **required**

L'ID client OAuth2 registrato presso il provider esterno.

`EXTERNAL_X_SECRET` - `string` **required**

Il segreto client OAuth2 fornito dal provider esterno al momento della registrazione.

`EXTERNAL_X_REDIRECT_URI` - `string` **required**

L'URI a cui un provider OAuth2 reindirizzerà con i valori `code` e `state`.

`EXTERNAL_X_URL` - `string`

L'URL di base utilizzato per costruire gli URL con cui richiedere i token di autorizzazione e di accesso. Usato da `gitlab` e `keycloak`. Per `gitlab` il valore predefinito è `https://gitlab.com`. Per `keycloak` devi impostarlo sulla tua istanza, ad esempio: `https://keycloak.example.com/realms/myrealm`

#### Network hardening

La configurazione di un provider di autenticazione esterno fa sì che Auth effettui richieste HTTP in uscita verso gli endpoint di autorizzazione, token e userinfo del provider. Configurare un provider tramite le impostazioni `GOTRUE_EXTERNAL_*` o un'API di amministrazione è un'azione amministrativa e implica la fiducia negli host e negli URL che verranno contattati.

La rete in cui gira Auth dovrebbe essere protetta affinché queste connessioni in uscita non possano raggiungere risorse solo interne che non vuoi esporre, come indirizzi `localhost`/loopback o endpoint di metadati cloud (ad es. `169.254.169.254`). Questo è particolarmente rilevante per i provider con endpoint configurabili dall'amministratore o rilevabili (ad es. provider OAuth/OIDC personalizzati), dove un URL configurato male o dannoso potrebbe altrimenti essere usato per raggiungere infrastrutture interne.

#### Apple OAuth

Per provare l'autenticazione esterna con Apple in locale, dovrai fare quanto segue:

1. Rimappa localhost su \<my_custom_dns \> nella configurazione di `/etc/hosts`.
2. Configura auth per servire traffico HTTPS su localhost sostituendo `ListenAndServe` in [api.go](https://github.com/supabase/auth/blob/HEAD/internal/api/api.go) con:   ```
      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. Genera il file crt e key. Consulta qui per maggiori informazioni.
  2. Genera il GOTRUE_EXTERNAL_APPLE_SECRET seguendo questo post!

Email

L'invio di email non è richiesto, ma è fortemente consigliato per il recupero della password. Se abilitato, devi fornire i valori richiesti di seguito.```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` **obbligatorio**

L'indirizzo email `From` per tutte le email inviate.

`SMTP_HOST` - `string` **obbligatorio**

Il nome host del server di posta attraverso cui inviare le email.

`SMTP_PORT` - `number` **obbligatorio**

Il numero di porta su cui connettersi al server di posta.

`SMTP_USER` - `string`

Se il server di posta richiede l'autenticazione, il nome utente da usare.

`SMTP_PASS` - `string`

Se il server di posta richiede l'autenticazione, la password da usare.

`SMTP_MAX_FREQUENCY` - `number`

Controlla il tempo minimo che deve trascorrere prima di inviare un'altra email di conferma della registrazione o di reset della password. Il valore è espresso in secondi. Il valore predefinito è 900 (15 minuti).

`SMTP_SENDER_NAME` - `string`

Imposta il nome del mittente. Se non utilizzato, il valore predefinito è `SMTP_ADMIN_EMAIL`.

`MAILER_AUTOCONFIRM` - `bool`

Se non richiedi la conferma via email, puoi impostarlo su `true`. Il valore predefinito è `false`.

`MAILER_OTP_EXP` - `number`

Controlla la durata di validità di un link email o di un OTP.

`MAILER_URLPATHS_INVITE` - `string`

Percorso URL da usare nell'email di invito utente. Il valore predefinito è `/verify`.

`MAILER_URLPATHS_CONFIRMATION` - `string`

Percorso URL da usare nell'email di conferma della registrazione. Il valore predefinito è `/verify`.

`MAILER_URLPATHS_RECOVERY` - `string`

Percorso URL da usare nell'email di reset della password. Il valore predefinito è `/verify`.

`MAILER_URLPATHS_EMAIL_CHANGE` - `string`

Percorso URL da usare nell'email di conferma del cambio di email. Il valore predefinito è `/verify`.

`MAILER_SUBJECTS_INVITE` - `string`

Oggetto dell'email da usare per l'invito utente. Il valore predefinito è `You've been invited`.

`MAILER_SUBJECTS_CONFIRMATION` - `string`

Oggetto dell'email da usare per la conferma della registrazione. Il valore predefinito è `Confirm your email address`.

`MAILER_SUBJECTS_RECOVERY` - `string`

Oggetto dell'email da usare per il reset della password. Il valore predefinito è `Reset your password`.

`MAILER_SUBJECTS_MAGIC_LINK` - `string`

Oggetto dell'email da usare per l'email con magic link. Il valore predefinito è `Your sign-in link`.

`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`

Oggetto dell'email da usare per la conferma del cambio di email. Il valore predefinito è `Confirm your new email address`.

`MAILER_SUBJECTS_REAUTHENTICATION` - `string`

Oggetto dell'email da usare per la riautenticazione. Il valore predefinito è `{{ .Token }} is your verification code`.

`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di modifica della password. Il valore predefinito è `Your password was changed`.

`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di modifica dell'indirizzo email. Il valore predefinito è `Your email address was changed`.

`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di modifica del numero di telefono. Il valore predefinito è `Your phone number was changed`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di collegamento dell'identità. Il valore predefinito è `A new sign-in method was linked to your account`.

`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di scollegamento dell'identità. Il valore predefinito è `A sign-in method was removed from your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di aggiunta di un metodo di verifica. Il valore predefinito è `A new verification method was added to your account`.

`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`

Oggetto dell'email da usare per la notifica di rimozione di un metodo di verifica. Il valore predefinito è `A verification method was removed from your account`.

`MAILER_TEMPLATES_INVITE` - `string`

Percorso URL di un modello email da usare quando si invita un utente. (ad es. `https://www.example.com/path-to-email-template.html`)
Sono disponibili le variabili `SiteURL`, `Email` e `ConfirmationURL`.

Contenuto predefinito (se il modello non è disponibile):```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

Percorso URL di un modello di email da utilizzare per confermare una registrazione. (es. https://www.example.com/path-to-email-template.html) Le variabili SiteURL, Email e ConfirmationURL sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Percorso URL di un modello di email da utilizzare per reimpostare una password. (es. https://www.example.com/path-to-email-template.html) Le variabili SiteURL, Email e ConfirmationURL sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Percorso URL di un template email da utilizzare per l'invio del magic link. (ad es. https://www.example.com/path-to-email-template.html) Le variabili SiteURL, Email e ConfirmationURL sono disponibili.

Contenuto predefinito (se il template non è disponibile):```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`

Percorso URL di un modello di email da utilizzare per confermare la modifica di un indirizzo email. (ad es. https://www.example.com/path-to-email-template.html) Sono disponibili le variabili SiteURL, Email, NewEmail e ConfirmationURL.

Contenuto predefinito (se il modello non è disponibile):```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`

Percorso URL di un modello di email da utilizzare quando si riautentica un utente. (ad es. https://www.example.com/path-to-email-template.html) La variabile Token è disponibile.

Contenuto predefinito (se il modello non è disponibile):```html

Your verification code

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

{{ .Token }}

``` `MAILER_TEMPLATES_PASSWORD_CHANGED_NOTIFICATION` - `string`

Percorso URL di un modello di email da utilizzare quando si notifica a un utente che la sua password è stata modificata. (es. https://www.example.com/path-to-email-template.html) Le variabili Email sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Indica se inviare un'email di notifica quando la password di un utente viene modificata. Il valore predefinito è false.

MAILER_TEMPLATES_EMAIL_CHANGED_NOTIFICATION - string

Percorso URL di un modello di email da utilizzare quando si notifica a un utente che la sua email è stata modificata. (es. https://www.example.com/path-to-email-template.html) Le variabili Email e OldEmail sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Se inviare un'email di notifica quando l'email di un utente viene modificata. Il valore predefinito è false.

GOTRUE_MAILER_TEMPLATES_PHONE_CHANGED_NOTIFICATION - string

Percorso URL di un modello di email da utilizzare quando si notifica a un utente che il suo numero di telefono è stato modificato. (es. https://www.example.com/path-to-email-template.html) Le variabili Email, Phone e OldPhone sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Indica se inviare un'email di notifica quando il numero di telefono di un utente viene modificato. Il valore predefinito è false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION - string

Percorso URL di un modello di email da utilizzare per notificare a un utente che un metodo di accesso è stato collegato al suo account. (es. https://www.example.com/path-to-email-template.html) Le variabili Email e Provider sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Se inviare un'email di notifica quando un metodo di accesso viene collegato all'account di un utente. Il valore predefinito è false.

GOTRUE_MAILER_TEMPLATES_IDENTITY_UNLINKED_NOTIFICATION - string

Percorso URL di un modello di email da utilizzare per notificare a un utente che un metodo di accesso è stato rimosso dal suo account. (es. https://www.example.com/path-to-email-template.html) Sono disponibili le variabili Email e Provider.

Contenuto predefinito (se il modello non è disponibile):```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`

Se inviare un'email di notifica quando un metodo di accesso viene rimosso dall'account di un utente. Il valore predefinito è false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_ENROLLED_NOTIFICATION - string

Percorso URL di un modello email da utilizzare quando si notifica a un utente che un nuovo metodo di verifica è stato aggiunto al proprio account. (es. https://www.example.com/path-to-email-template.html) Le variabili Email e FactorType sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Se inviare un'email di notifica quando un nuovo metodo di verifica viene aggiunto all'account di un utente. Il valore predefinito è false.

GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_UNENROLLED_NOTIFICATION - string

Percorso URL di un modello di email da utilizzare quando si notifica a un utente che un metodo di verifica è stato rimosso dal suo account. (ad es. https://www.example.com/path-to-email-template.html) Le variabili Email e FactorType sono disponibili.

Contenuto predefinito (se il modello non è disponibile):```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`

Indica se inviare un'email di notifica quando un metodo di verifica viene rimosso da un account utente. Il valore predefinito è false.

Autenticazione telefonica

SMS_AUTOCONFIRM - bool

Se non è richiesta la conferma telefonica, puoi impostarlo su true. Il valore predefinito è false.

SMS_MAX_FREQUENCY - number

Controlla il periodo minimo di tempo che deve trascorrere prima di inviare un altro SMS OTP. Il valore è espresso in secondi. Il valore predefinito è 60 (1 minuto).

SMS_OTP_EXP - number

Controlla la durata di validità di un SMS OTP.

SMS_OTP_LENGTH - number

Controlla il numero di cifre dell'SMS OTP inviato.

SMS_PROVIDER - string

Le opzioni disponibili sono: twilio, messagebird, textlocal e vonage

Quindi puoi utilizzare le tue credenziali twilio:

  • SMS_TWILIO_ACCOUNT_SID
  • SMS_TWILIO_AUTH_TOKEN
  • SMS_TWILIO_MESSAGE_SERVICE_SID - può essere impostato sul tuo numero di cellulare del mittente twilio

Oppure le credenziali Messagebird, che possono essere ottenute nella Dashboard:

  • SMS_MESSAGEBIRD_ACCESS_KEY - la tua chiave di accesso Messagebird
  • SMS_MESSAGEBIRD_ORIGINATOR - mittente SMS (il tuo numero di telefono Messagebird con + o nome dell'azienda)

CAPTCHA

  • Se abilitato, il CAPTCHA controllerà il corpo della richiesta per il campo captcha_token ed effettuerà una richiesta di verifica al provider CAPTCHA.

SECURITY_CAPTCHA_ENABLED - string

Indica se il middleware captcha è abilitato

SECURITY_CAPTCHA_PROVIDER - string

per ora le uniche opzioni supportate sono: hCaptcha e Turnstile

  • SECURITY_CAPTCHA_SECRET - string
  • SECURITY_CAPTCHA_TIMEOUT - string

Recupera dall'account hcaptcha o turnstile

Riautenticazione

SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION - bool

Impone la riautenticazione all'aggiornamento della password.

Accessi anonimi

GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED - bool

Utilizza questa opzione per abilitare/disabilitare gli accessi anonimi.

Inoltro dell'indirizzo IP

GOTRUE_SECURITY_SB_FORWARDED_FOR_ENABLED - bool

Abilita l'inoltro dell'indirizzo IP utilizzando l'header della richiesta HTTP Sb-Forwarded-For. Quando abilitato, Auth analizzerà il primo valore di questo header come indirizzo IP e lo utilizzerà per il monitoraggio dell'indirizzo IP e il rate limiting. Assicurati che questo header sia completamente attendibile prima di abilitare questa funzionalità, passandolo solo da client o proxy affidabili.

Endpoint

Auth espone i seguenti endpoint:

GET /settings

Restituisce le impostazioni disponibili pubblicamente per questa istanza di auth.```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>**

Crea (POST) o aggiorna (PUT) l'utente in base allo `user_id` specificato. Il campo `ban_duration` accetta le seguenti unità di tempo: "ns", "us", "ms", "s", "m", "h". Vedi [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) per maggiori dettagli sul formato utilizzato.```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

Restituisce il link di azione email corrispondente in base al tipo specificato. Tra le altre cose, la risposta contiene anche i parametri di query del link di azione come campi JSON separati per comodità (insieme all'OTP email da cui viene generato il token corrispondente).```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:~
Restituisce```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

Registra un nuovo utente con un'email e una password.```json { "email": "[email protected]", "password": "secret" }

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

Registra un nuovo utente con un numero di telefono e una password.```js { "phone": "12345678", // follows the E.164 format "password": "secret" }

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

se AUTOCONFIRM è abilitato e la registrazione è un duplicato, allora l'endpoint restituirà:```json { "code": 400, "msg": "User already registered" }

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

Consente a un utente di reinviare un OTP esistente di signup, sms, email_change o phone_change.```json
{
  "email": "[email protected]",
  "type": "signup"
}

Please provide the Markdown content to translate.```json { "phone": "12345678", "type": "sms" }

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

POST /invite

Invita un nuovo utente con un'email. Questo endpoint richiede il JWT service_role o supabase_admin impostato come header Auth Bearer:

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

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

Restituisce:```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**

Verifica una registrazione o un recupero password. Il tipo può essere `signup`, `recovery`, `invite`, `magiclink`, `email_change`, `sms` o `phone_change` e il `token` è un token restituito da `/signup` o `/recover`.```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email"
}

password è richiesto per la verifica della registrazione se non esiste già una password.

Restituisce:```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:~
Verifica una registrazione telefonica o un OTP via SMS. Il tipo deve essere impostato su `sms`.```json
{
  "type": "sms",
  "token": "confirmation-otp-delivered-in-sms",
  "redirect_to": "https://supabase.io",
  "phone": "phone-number-sms-otp-was-delivered-to"
}

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

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

Verifica una registrazione o un recupero password. Il tipo può essere `signup`, `recovery`, `magiclink`, `invite` o `email_change`
e il `token` è un token restituito da `/signup`, `/recover` o `/magiclink`.

Parametri di query:```json
{
  "type": "signup",
  "token": "confirmation-code-delivered-in-email",
  "redirect_to": "https://supabase.io"
}

L'utente verrà autenticato e reindirizzato a:``` SITE_URL/#access_token=jwt-token-representing-the-user&token_type=bearer&expires_in=3600&refresh_token=a-refresh-token&type=invite

root@kitploit:~
La tua app dovrebbe rilevare i parametri di query nel frammento e usarli per impostare la sessione (supabase-js lo fa automaticamente)

Puoi usare il parametro `type` per reindirizzare l'utente a un modulo per l'impostazione della password in caso di `invite` o `recovery`,
oppure mostrare un messaggio di account confermato/bentornato in caso di `signup`, o indirizzarlo a un flusso di onboarding aggiuntivo

### **POST /otp**

One-Time-Password. Consegnarà un magic link o un SMS OTP all'utente a seconda che il corpo della richiesta contenga una chiave "email" o "phone".

Se `"create_user": true`, l'utente non verrà registrato automaticamente se l'utente non esiste.```js
{
  "phone": "12345678" // follows the E.164 format
  "create_user": true
}

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

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

POST /magiclink (consigliato usare /otp invece. Vedi sopra.)

Magic Link. Verrà consegnato un link (es. /verify?type=magiclink&token=fgtyuf68ddqdaDd) all'utente in base all'indirizzo email, che potrà utilizzare per riscattare un access_token.

Per impostazione predefinita, i Magic Link possono essere inviati solo una volta ogni 60 secondi.```json { "email": "[email protected]" }

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

Quando si fa clic sul link magico, verrà reindirizzato a <SITE_URL>#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=magiclink (vedi /verify sopra)

POST /recover

Recupero password. Invierà una mail di recupero password all'utente in base all'indirizzo email.

Per impostazione predefinita, i link di recupero possono essere inviati solo una volta ogni 60 secondi.```json { "email": "[email protected]" }

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

POST /token

Questo è un endpoint OAuth2 che attualmente implementa i tipi di concessione password e refresh_token

parametri di query:``` ?grant_type=password

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

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

oppure

parametri di query:``` grant_type=refresh_token

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

Una volta ottenuto un token di accesso, puoi accedere ai metodi che richiedono autenticazione impostando l'header Authorization: Bearer YOUR_ACCESS_TOKEN_HERE.

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

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

Ottieni l'oggetto JSON per l'utente connesso (richiede autenticazione)

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

Aggiorna un utente (richiede autenticazione). Oltre a modificare email/password, questo metodo può essere utilizzato per impostare dati utente personalizzati. La modifica dell'email comporterà l'invio di un magic link.```json { "email": "[email protected]", "password": "new-password", "phone": "+123456789", "data": { "key": "value", "number": 10, "admin": false } }

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

Se GOTRUE_SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION è abilitato, l'utente dovrà prima riautenticarsi.```json { "password": "new-password", "nonce": "123456" }

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

Invia un nonce all'email dell'utente (preferita) o al telefono. Questo endpoint richiede che l'utente abbia effettuato l'accesso / sia autenticato. L'utente deve avere un'email o un numero di telefono affinché il nonce possa essere inviato con successo.```js
headers: {
  "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO"
}

POST /logout

Esegue il logout di un utente (richiede autenticazione).

Questo revocherà tutti i refresh token per l'utente. Ricorda che i token JWT rimarranno validi per l'autenticazione stateless fino alla loro scadenza.

GET /authorize

Ottieni access_token dal provider OAuth esterno

query params:``` 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`

For Apple-specific setup see: <https://github.com/supabase/auth#apple-oauth>

### **GET /callback**

External provider should redirect to this endpoint

Redirects to `<GOTRUE_SITE_URL>#access_token=<access_token>&refresh_token=<refresh_token>&provider_token=<provider_oauth_token>&expires_in=3600&provider=<provider_name>`
If additional scopes were requested then `provider_token` will be populated, you can use this to fetch additional data from the provider or interact with their services
Scarica lo strumento
twitter
workos