Current section
Files
Jump to
Current section
Files
src/ls_oauth.erl
-module(ls_oauth).
-export([authorize_password/2]).
-export([authorize_password/3]).
-export([authorize_password/4]).
-export([authorize_client_credentials/2]).
-export([authorize_code_grant/3]).
-export([authorize_code_request/4]).
-export([issue_code/1]).
-export([scope/0]).
-export([scope/1]).
-export([issue_token/1]).
-export([issue_token_and_refresh/1]).
-export([verify_access_token/1]).
-export([verify_access_code/1]).
-export([verify_access_code/2]).
-export([refresh_access_token/3]).
-define(SLOW_TIMEOUT, 3000).
%%%===================================================================
%%% User Functions
%%%===================================================================
%%-export([authorize_password/3]).
authorize_password(User, Scope) ->
send_slow(libsnarl_msg:authorize_password(r(), User, Scope)).
%%-export([authorize_password/4]).
authorize_password(User, Client, Scope) ->
send_slow(libsnarl_msg:authorize_password(r(), User, Client, Scope)).
%%-export([authorize_password/5]).
authorize_password(User, Client, RedirUri, Scope) ->
send_slow(
libsnarl_msg:authorize_password(r(), User, Client, RedirUri, Scope)).
%% -export([authorize_client_credentials/3]).
authorize_client_credentials(Client, Scope) ->
send_slow(libsnarl_msg:authorize_client_credentials(r(), Client, Scope)).
%% -export([authorize_code_grant/4]).
authorize_code_grant(Client, Code, RedirUri) ->
send(libsnarl_msg:authorize_code_grant(r(), Client, Code, RedirUri)).
%% -export([authorize_code_request/5]).
authorize_code_request(User, Client, RedirUri, Scope) ->
send_slow(
libsnarl_msg:authorize_code_request(r(), User, Client, RedirUri, Scope)).
%% -export([issue_code/2]).
issue_code(Auth) ->
send(libsnarl_msg:issue_code(r(), Auth)).
%% -export([issue_token/2]).
issue_token(Auth) ->
send(libsnarl_msg:issue_token(r(), Auth)).
%% -export([issue_token_and_refresh/2]).
issue_token_and_refresh(Auth) ->
send(libsnarl_msg:issue_token_and_refresh(r(), Auth)).
%% -export([verify_access_token/2]).
-spec verify_access_token(Token :: binary()) ->
{ok, Context :: proplists:proplist()} |
not_found |
{error, no_servers}.
verify_access_token(Token) ->
send(libsnarl_msg:verify_access_token(r(), Token)).
%% -export([verify_access_code/2]).
verify_access_code(AccessCode) ->
send(libsnarl_msg:verify_access_code(r(), AccessCode)).
%% -export([verify_access_code/3]).
verify_access_code(AccessCode, Client) ->
send(libsnarl_msg:verify_access_code(r(), AccessCode, Client)).
%% -export([refresh_access_token/4]).
refresh_access_token(Client, RefreshToken, Scope) ->
send(libsnarl_msg:refresh_access_token(r(), Client, RefreshToken, Scope)).
-spec scope() ->
{ok, [fifo:scope_map()]} |
{error, no_servers}.
scope() ->
send(libsnarl_msg:scope(r())).
-spec scope(Subscope :: binary() | fifo:scope_list()) ->
{ok, [fifo:scope_map()]} |
{error, no_servers}.
scope(Subscope) ->
send(libsnarl_msg:scope(r(), Subscope)).
-spec send(Msg::fifo:snarl_oauth_message()) ->
ok |
not_found |
{ok, Reply::term()} |
{error, no_servers}.
send(Msg) ->
case libsnarl_server:call(Msg) of
{reply, Reply} ->
Reply;
E ->
E
end.
send_slow(Msg) ->
case libsnarl_server:call(Msg, ?SLOW_TIMEOUT) of
{reply, Reply} ->
Reply;
E ->
E
end.
r() ->
application:get_env(libsnarl, realm, <<"default">>).