> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticació d'usuaris finals, passkeys i sessions

> Afegeix inici de sessió amb passkeys, codis, xarxes socials i SSO a Didit, amb pàgines allotjades i connectat a la verificació d'identitat.

> [!WARNING]
>
> Authentication és nova. Didit activa el producte per a la teva aplicació. Fins llavors, totes les rutes d'execució d'aquesta aplicació retornen `404`. Els paquets de l'SDK d'Authentication encara no estan publicats, així que utilitza el flux allotjat i el contracte HTTP d'aquestes pàgines.

Authentication permet als teus clients iniciar sessió a **la teva aplicació**. És independent d'iniciar sessió a la consola de Didit o de crear un compte de desenvolupador de Didit. També és independent de verificar la identitat d'una persona.

Utilitza Authentication sol o combina'l amb la Verificació d'identitat i el Monitoratge de transaccions. Iniciar sessió no aprova una verificació ni autoritza un pagament. El teu backend pren aquestes decisions a partir del resultat de cada producte.

## Com funciona

Cada aplicació té el seu propi origen d'inici de sessió i el seu propi emissor de tokens. Les aplicacions de producció i les sandbox són independents: tenen orígens, configuracions i identitats separats.

| Element | Valor |
| - | - |
| Origen per defecte | `https://<slug>.auth.didit.me` per a una aplicació de producció, `https://<slug>.sandbox.auth.didit.me` per a una aplicació sandbox. La consola mostra el teu. Un domini personalitzat verificat pot substituir-lo. |
| Pàgines allotjades | `/sign-in`, `/magic`, `/invite` i `/reset` en aquest origen. |
| API d'execució | El mateix origen, per exemple `POST {origin}/token/` i `GET {origin}/session/`. |
| Emissor | L'origen en si. El descobriment es troba a `{origin}/.well-known/openid-configuration`. |
| Clau publicable | `pk_live_...` o `pk_test_...`. Identifica l'aplicació, no és un secret. |

El flux utilitza el codi d'autorització d'OAuth 2.0 amb PKCE (només `S256`):

1. La teva app obre `{origin}/sign-in` amb `redirect_uri`, `state`, `code_challenge` i `code_challenge_method=S256`.
2. La pàgina allotjada inicia sessió o registra la persona amb els mètodes que hagis activat, incloent-hi qualsevol segon factor obligatori.
3. El navegador torna al teu `redirect_uri` amb `code` i `state`.
4. La teva app intercanvia el codi a `POST {origin}/token/` per obtenir un token d'accés, un token d'ID i un token de refresc.

Consulta [tokens i JWKS](https://docs.didit.me/ca/authentication/tokens-and-jwks.md) per al contracte de tokens i [mètodes d'inici de sessió](https://docs.didit.me/ca/authentication/sign-in-methods.md) per a cada mètode.

## Tria la teva plataforma

> [card] [JavaScript](https://docs.didit.me/ca/authentication/quickstarts/javascript.md)
>
> Inici de sessió allotjat, callback, sessió i tancament de sessió.

> [card] [React](https://docs.didit.me/ca/authentication/quickstarts/react.md)
>
> Estat al client i vistes protegides de l'aplicació.

> [card] [Next.js](https://docs.didit.me/ca/authentication/quickstarts/nextjs.md)
>
> Sessions al servidor, rutes de callback i cookies.

> [card] [iOS](https://docs.didit.me/ca/authentication/quickstarts/ios.md)
>
> Navegador del sistema i emmagatzematge segur de tokens.

> [card] [Android](https://docs.didit.me/ca/authentication/quickstarts/android.md)
>
> Autorització al navegador i callbacks de l'app.

> [card] [React Native](https://docs.didit.me/ca/authentication/quickstarts/react-native.md)
>
> Preparació de l'embolcall d'autenticació natiu.

> [card] [Flutter](https://docs.didit.me/ca/authentication/quickstarts/flutter.md)
>
> Preparació de l'embolcall d'autenticació natiu.

## Prepara la teva aplicació

1. Demana a Didit que activi Authentication per a la teva aplicació. Prova primer en una aplicació sandbox.
2. Registra les teves [URL de redirecció](#url-de-redirecció) exactes (fins a 50) i els `allowed_origins` del navegador (fins a 50) que criden l'API d'execució.
3. Activa els [mètodes d'inici de sessió](https://docs.didit.me/ca/authentication/sign-in-methods.md) que vulguis oferir. La ID Wallet de Didit està sempre activada.
4. Tria la configuració de sessió i de contrasenya (vegeu més avall).
5. Prova el registre, l'inici de sessió, la recuperació de contrasenya, el MFA, la caducitat de la sessió i el tancament de sessió abans de publicar.

Una clau d'accés pertany al seu origen. Si més endavant actives un domini personalitzat, les persones hauran de tornar a registrar les seves claus d'accés.

## URL de redirecció

Didit només retorna una persona a una adreça que hagis registrat.
Registra les teves a la consola, a **Authentication > Security and sessions > Redirect URLs and allowed origins**.

El `redirect_uri` d'una sol·licitud d'inici de sessió ha de coincidir amb una URL registrada caràcter per caràcter: esquema, amfitrió, port, camí i consulta. Un port diferent, una barra final o una diferència entre majúscules i minúscules constitueix una adreça diferent.

| Aplicació | Què pots registrar |
| - | - |
| Producció | URL `https://` |
| Sandbox | URL `https://`, i URL `http://` a `localhost`, `127.0.0.1` o `[::1]` |

Els comodins, els fragments, les credencials a la URL i els esquemes personalitzats es rebutgen.

Quan l'adreça no està registrada, Didit mai no hi redirigeix.
`{origin}/sign-in` respon amb `400` i una pàgina que indica què cal registrar i on, i `POST {origin}/authorize/` respon amb `400 {"error": "invalid_redirect_uri"}`.

### Desenvolupament en local

Prova a la teva pròpia màquina amb la teva aplicació sandbox:

1. Registra el teu callback amb el seu port, per exemple `http://localhost:3000/auth/callback`.
2. Si el codi del navegador crida l'API d'execució, per exemple per intercanviar el codi a `POST {origin}/token/`, afegeix també l'origen a **Orígens permesos**: `http://localhost:3000`, sense camí i sense barra final.
3. Inicia el procés d'inici de sessió a l'origen sandbox, `https://<slug>.sandbox.auth.didit.me`, amb la teva clau `pk_test_...`.

`localhost`, `127.0.0.1` i `[::1]` són adreces diferents, i també ho és cada port. Registra cadascuna que utilitzis.

Les aplicacions de producció mai no accepten `http://`.
Abans de publicar, registra el teu callback de producció `https://` a la teva aplicació de producció.

## Configuració de l'aplicació

Gestiona aquesta configuració a la consola o amb una sessió de consola autoritzada que tingui `write:authentication`.

| Configuració | Valors | Per defecte |
| - | - | - |
| `session_lifetime` | `86400`, `604800`, `2592000`, `7776000` segons | `2592000` (30 dies) |
| `idle_timeout` | `1800`, `7200`, `86400`, `604800` segons | `86400` (1 dia) |
| `multiple_sessions` | `false` tanca la sessió de la persona en totes les seves altres sessions cada vegada que inicia sessió | `true` |
| `password_min_length` | `8`, `10`, `12`, `14` | `10` |
| `revoke_on_password_change` | Finalitza totes les sessions després d'un restabliment de contrasenya | `true` |
| `signup_policy` | `anyone`, `invited`, `allowed_domains` (amb `allowed_email_domains`, fins a 100) | `anyone` |
| `allow_subaddresses` | Accepta un `+` a la part local de l'adreça de correu electrònic | `false` |
| `post_logout_redirect_uri` | On la teva aplicació envia la persona després de tancar la sessió | Buit |
| `mfa_policy` | `optional`, `everyone`, `organization_admins` | `organization_admins` |
| `sign_in_ui` | `hosted` o `own` | `hosted` |

## Mantén una mateixa persona entre productes

Cada identitat té un valor `vendor_data`. És el `external_id` que vas proporcionar quan [vas importar](https://docs.didit.me/ca/authentication/migration.md) la persona o, en cas contrari, l'ID d'identitat de Didit. Apareix al token d'accés, al token d'ID i a `GET session/`.

Utilitza el mateix valor com a `vendor_data` quan creïs sessions de verificació i enviïs transaccions. Així, els esdeveniments d'autenticació apareixen associats a la mateixa persona a la consola que les seves verificacions i transaccions. Consulta [esdeveniments i webhooks](https://docs.didit.me/ca/authentication/events-and-webhooks.md).

Deriva `vendor_data` al teu backend a partir d'un token verificat, mai d'un camp del navegador sense comprovar.

| Combinació de productes | Què construeixes |
| - | - |
| Autenticació | Inicia sessió, valida les sessions i tanca la sessió. |
| Verificació d'identitat + Autenticació | Inicia una verificació després de l'inici de sessió quan la teva política ho requereixi, amb el `vendor_data` del token. |
| Monitoratge de transaccions + Autenticació | Envia transaccions per al `vendor_data` de la persona que ha iniciat sessió. Els esdeveniments d'inici de sessió arriben a la línia de temps i a les regles de la mateixa persona. |
| Els tres | Un `vendor_data` per persona. Gestiona la decisió de cada producte per separat. |

Utilitza el [prompt d'integració compartit](https://docs.didit.me/ca/integration/integration-prompt.md) per a qualsevol combinació. Llegeix [protecció contra bots](https://docs.didit.me/ca/authentication/bot-protection.md) per conèixer les polítiques que s'executen en iniciar sessió.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.