25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00

Return more user friendly, human readable error description

This commit is contained in:
Mickael Remond 2016-07-24 14:10:12 +02:00
parent bfa61eaa46
commit b4a430541d
No known key found for this signature in database
GPG Key ID: E6F6045D79965AA3

View File

@ -534,13 +534,10 @@ process(_Handlers,
{<<"scope">>, str:join(VerifiedScope, <<" ">>)},
{<<"expires_in">>, Expires}]});
{error, Error} when is_atom(Error) ->
json_response(400, {[
{<<"error">>, <<"invalid_grant">>},
{<<"error_description">>, Error}]})
json_error(400, <<"invalid_grant">>, Error)
end;
_OtherGrantType ->
json_response(400, {[
{<<"error">>, <<"unsupported_grant_type">>}]})
_OtherGrantType ->
json_error(400, <<"unsupported_grant_type">>, unsupported_grant_type)
end;
process(_Handlers, _Request) ->
@ -554,7 +551,17 @@ json_response(Code, Body) ->
{<<"Pragma">>, <<"no-cache">>}],
jiffy:encode(Body)}.
%% OAauth error are defined in:
%% https://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-5.2
json_error(Code, Error, Reason) ->
Desc = json_error_desc(Reason),
Body = {[{<<"error">>, Error},
{<<"error_description">>, Desc}]},
json_response(Code, Body).
json_error_desc(access_denied) -> <<"Access denied">>;
json_error_desc(unsupported_grant_type) -> <<"Unsupported grant type">>;
json_error_desc(invalid_scope) -> <<"Invalid scope">>.
web_head() ->
[?XA(<<"meta">>, [{<<"http-equiv">>, <<"X-UA-Compatible">>},