diff options
Diffstat (limited to 'apps/ory')
-rw-r--r-- | apps/ory/src/ory_hydra.erl | 6 | ||||
-rw-r--r-- | apps/ory/src/ory_kratos.erl | 17 |
2 files changed, 18 insertions, 5 deletions
diff --git a/apps/ory/src/ory_hydra.erl b/apps/ory/src/ory_hydra.erl index 8902c98..47b6601 100644 --- a/apps/ory/src/ory_hydra.erl +++ b/apps/ory/src/ory_hydra.erl @@ -1,5 +1,5 @@ -module(ory_hydra). --export([url/0, admin_url/0, login_request/1, accept_login_request/2, consent_request/1, accept_consent_request/2, reject_consent_request/2]). +-export([url/0, admin_url/0, userinfo/1, login_request/1, accept_login_request/2, consent_request/1, accept_consent_request/2, reject_consent_request/2]). login_request(Challenge) -> Url = [admin_url(), "/oauth2/auth/requests/login?login_challenge=", Challenge], @@ -29,6 +29,10 @@ reject_consent_request(Challenge, Data) -> Json = jsone:encode(Data), api_response(hackney:request(put, Url, Headers, Json, [])). +userinfo(Authorization) -> + Url = [url(), "/userinfo"], + Headers = [{"accept", "application/json"}, {"authorization", Authorization}], + api_response(hackney:request(get, Url, Headers, <<>>, [])). admin_url() -> {ok, Value} = application:get_env(ory, hydra_admin_url), diff --git a/apps/ory/src/ory_kratos.erl b/apps/ory/src/ory_kratos.erl index 02a85a0..1d4c5a1 100644 --- a/apps/ory/src/ory_kratos.erl +++ b/apps/ory/src/ory_kratos.erl @@ -1,7 +1,8 @@ -module(ory_kratos). --export([login_url/1, registration_url/1, settings_url/1, recovery_url/1, verification_url/1, url/0]). +-export([login_url/1, registration_url/1, settings_url/1, recovery_url/1, verification_url/1, url/0, admin_url/0]). -export([registration_flow/2, login_flow/2, settings_flow/2, recovery_flow/2, verification_flow/2, logout_flow/1, whoami/1, error/1]). +-export([get_identity/1]). login_url(browser) -> [url(), "/self-service/login/browser"]. @@ -22,6 +23,10 @@ url() -> {ok, Value} = application:get_env(ory, kratos_url), Value. +admin_url() -> + {ok, Value} = application:get_env(ory, kratos_admin_url), + Value. + registration_flow(Cookie, Id) -> Url = [url(), "/self-service/registration/flows?id=", Id], Headers = [{<<"cookie">>, Cookie}, {"accept", "application/json"}], @@ -59,9 +64,13 @@ whoami(Cookie) -> error(Id) -> Url = [url(), "/self-service/errors?id=", Id], - {ok, 200, _, Client} = hackney:request(get, Url, [], <<>>, []), - {ok, Body} = hackney:body(Client), - {ok, jsone:decode(Body)}. + Headers = [{"accept", "application/json"}], + api_response(hackney:request(get, Url, Headers, <<>>, [])). + +get_identity(Id) -> + Url = [admin_url(), "/identities/", Id], + Headers = [{"accept", "application/json"}], + api_response(hackney:request(get, Url, Headers, <<>>, [])). api_response(Error = {error, Error}) -> logger:error("ory_kratos hackney error: ~p", [Error]), |