oauth/oidc
This commit is contained in:
30
lib/sso_bsn_web/controllers/openid/userinfo_controller.ex
Normal file
30
lib/sso_bsn_web/controllers/openid/userinfo_controller.ex
Normal file
@@ -0,0 +1,30 @@
|
||||
defmodule SsoBsnWeb.Openid.UserinfoController do
|
||||
@behaviour Boruta.Openid.UserinfoApplication
|
||||
|
||||
use SsoBsnWeb, :controller
|
||||
|
||||
alias Boruta.Openid.UserinfoResponse
|
||||
|
||||
def openid_module, do: Application.get_env(:sso_bsn, :openid_module, Boruta.Openid)
|
||||
|
||||
def userinfo(conn, _params) do
|
||||
openid_module().userinfo(conn, __MODULE__)
|
||||
end
|
||||
|
||||
@impl Boruta.Openid.UserinfoApplication
|
||||
def userinfo_fetched(conn, userinfo_response) do
|
||||
conn
|
||||
|> put_resp_header("content-type", UserinfoResponse.content_type(userinfo_response))
|
||||
|> json(UserinfoResponse.payload(userinfo_response))
|
||||
end
|
||||
|
||||
@impl Boruta.Openid.UserinfoApplication
|
||||
def unauthorized(conn, error) do
|
||||
conn
|
||||
|> put_resp_header(
|
||||
"www-authenticate",
|
||||
"error=\"#{error.error}\", error_description=\"#{error.error_description}\""
|
||||
)
|
||||
|> send_resp(:unauthorized, "")
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user