
# Elenca le organizzazioni tra cui scegliere

`GET /fapi/v1/authorization-requests/{authorization_request_id}/organizations` · chiamato dall'host di accesso dell'ambiente

Chiamato dal selettore di organizzazione ospitato in `/u/organization`. Quando `organization_usage` di un'applicazione è `require` e la richiesta di autorizzazione non indica alcuna `organization`, l'endpoint di autorizzazione cerca le organizzazioni dell'utente una volta che l'utente ha effettuato l'accesso. Se non ce ne sono, la richiesta termina con `access_denied` e `error_description=no_organization_membership`. Se ce n'è una sola, quell'organizzazione viene associata senza mostrare schermate. Se ce ne sono due o più, il browser passa al selettore, che legge questo elenco.

L'elenco contiene le organizzazioni in cui l'utente ha un'appartenenza attiva, l'organizzazione è attiva e l'applicazione è abilitata. È in ordine di slug e contiene al massimo 100 voci; `truncated: true` indica che ne esistono altre. L'organizzazione scelta per ultima in questa sessione compare per prima e ha `last_used: true`. `name` è un dato del cliente con i caratteri di controllo e di direzione rimossi. Quando un'organizzazione non ha un nome, `name` è il suo slug. Leggere l'elenco non associa nulla.

La richiesta di autorizzazione deve essere in attesa, aperta su questo host di accesso e avere il cookie di associazione impostato dall'endpoint di autorizzazione in questo browser. I casi seguenti ricevono tutti la stessa risposta `404 not_found`:

- una richiesta malformata o sconosciuta
- una richiesta scaduta o conclusa
- una richiesta aperta su un altro host
- una richiesta aperta in un altro browser

Richiede il cookie `__Host-idp_session` dell'utente autenticato; se il cookie manca, è scaduto o è stato revocato, restituisce `401 unauthenticated`.

## Richiesta

Parametro di percorso:

| Parametro | Descrizione |
| --- | --- |
| `authorization_request_id` | Il valore `authorization_request` dell'URL del selettore (`azr_…`). |

Intestazioni:

| Intestazione | Obbligatoria | Descrizione |
| --- | --- | --- |
| `Idp-Client` | sì | Identificativo dell'SDK. |

Nessun corpo.

## Risposta

`200 OK`:

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `data[].id` | string | Identificativo dell'organizzazione (`org_…`). |
| `data[].slug` | string | Slug dell'organizzazione. |
| `data[].name` | string | Nome visualizzato, testo semplice. |
| `data[].last_used` | boolean | Indica se è l'organizzazione scelta per ultima in questa sessione. |
| `truncated` | boolean | Indica se l'utente ha altre organizzazioni idonee oltre a quelle elencate. |

```json
{
  "data": [
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w", "slug": "acme", "name": "Acme", "last_used": false},
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9x", "slug": "globex", "name": "Globex", "last_used": false}
  ],
  "truncated": false
}
```

## Errori

| Stato | Codice | Quando |
| --- | --- | --- |
| 401 | `unauthenticated` | Nessun cookie di sessione valido. |
| 404 | `not_found` | La richiesta è malformata, sconosciuta, scaduta, conclusa, di un altro host o di un altro browser. |
| 409 | `conflict` | La richiesta ha già un'organizzazione. |
| 503 | `temporarily_unavailable` | Non è stato possibile leggere l'elenco delle organizzazioni. |

## Esempio

```bash
curl https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w/organizations \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt
```
