Sto creando un servizio che funge da proxy per fornitori di dati di terze parti per l'utente finale. Il mio servizio utilizza token per l'autorizzazione e se l'utente non ha un token valido risponde con 401 Unauthorized
. Se il token è valido ma viene negato l'accesso alla risorsa, il mio servizio risponde con 403 Forbidden
.
Il servizio recupera dati da fornitori di dati di terze parti. Questi fornitori di dati utilizzano gli stessi codici di risposta (401/403). Quando tale token è scaduto, l'utente finale deve immettere nuovamente le proprie credenziali per quel servizio in modo che il mio servizio possa richiedere nuovi token dai provider di terze parti.
Se inoltro il 401/403 dal fornitore di dati di terze parti al mio utente finale, non sarà in grado di sapere se l'autorizzazione non è stata eseguita nei confronti del mio servizio o della terza parte. I framework che sto usando non mi permettono di cambiare il messaggio né di inviare un corpo con la risposta.
Ho riflettuto su quale codice di stato posso utilizzare e ho pensato a 511 Network Authentication Required
. Questo codice è utilizzato da "proxy" e il mio servizio funge da proxy, anche se forse non nel modo in cui un proxy di rete "normale" fa.
Vorrebbe 511
essere un codice di stato ragionevole da usare o c'è qualcosa di meglio?