aboutsummaryrefslogtreecommitdiff
path: root/apps/ory/src
diff options
context:
space:
mode:
authorJordan Bracco <href@random.sh>2021-09-03 22:47:55 +0200
committerJordan Bracco <href@random.sh>2021-09-03 22:47:55 +0200
commit023fcf384bc89b861f51c81a20a5aefea8afe772 (patch)
tree52c8aa95835acea5fbcb664d8e3f92c4e1e90316 /apps/ory/src
parentvarious small fixes (diff)
userinfo endpointHEADmain
Diffstat (limited to 'apps/ory/src')
-rw-r--r--apps/ory/src/ory_hydra.erl6
-rw-r--r--apps/ory/src/ory_kratos.erl17
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]),