Stiamo utilizzando la classe OAuthAuthorizationServerProvider
per eseguire l'autorizzazione nella nostra app ASP.NET Web Api.Come personalizzare il messaggio di errore di OAuthAuthorizationServerProvider?
Se il nome utente e la password forniti non sono validi nel GrantResourceOwnerCredentials
, la chiamata
context.SetError("invalid_grant", "The user name or password is incorrect.");
produce il seguente risultato JSON:
{
"error": "invalid_grant",
"error_description": "The user name or password is incorrect."
}
Esiste un modo per personalizzare il risultato di errore?
Vorrei renderlo coerente con l'errore di default formato del messaggio utilizzato in altre parti del API:
{
"message": "Some error occurred."
}
Questo è possibile raggiungere con la OAuthAuthorizationServerProvider
?
Mentre le risposte qui sotto dimostrano come fare questo, vorrei mettere in guardia contro questo modo, come la risposta predefinita restituita è conforme alle specifiche OAuth 2.0, mentre la risposta modificato non avrebbe . Questo potrebbe essere accettabile per le API solo interne. Tuttavia, se questa API è pubblicamente accessibile, probabilmente si desidera seguire le specifiche e non inventare nuove convenzioni. – Chris
Ho scoperto che queste risposte non funzionano e sembra che la risposta OAuth per sembrare più simile a una risposta API Web standard non è facile come si potrebbe pensare. – Sam