Skip to content

Commit

Permalink
Return more user friendly, human readable error description
Browse files Browse the repository at this point in the history
  • Loading branch information
mremond committed Jul 24, 2016
1 parent bfa61ea commit b4a4305
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/ejabberd_oauth.erl
Expand Up @@ -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) ->
Expand All @@ -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">>},
Expand Down

0 comments on commit b4a4305

Please sign in to comment.