diff --git a/lib/comfycamp_web/controllers/oauth_controller.ex b/lib/comfycamp_web/controllers/oauth_controller.ex index 39e1c35..9fa4227 100644 --- a/lib/comfycamp_web/controllers/oauth_controller.ex +++ b/lib/comfycamp_web/controllers/oauth_controller.ex @@ -108,6 +108,10 @@ defmodule ComfycampWeb.OauthController do ) end + def openid_discovery(conn, _params) do + render(conn, :openid_discovery) + end + defp build_redirect_uri(redirect_uri, code, state) do parsed_uri = URI.parse(redirect_uri) diff --git a/lib/comfycamp_web/controllers/oauth_json.ex b/lib/comfycamp_web/controllers/oauth_json.ex index 6a93c9c..f43b659 100644 --- a/lib/comfycamp_web/controllers/oauth_json.ex +++ b/lib/comfycamp_web/controllers/oauth_json.ex @@ -7,4 +7,18 @@ defmodule ComfycampWeb.OauthJSON do id_token: id_token } end + + def openid_discovery(_assigns) do + %{ + issuer: "https://comfycamp.space", + authorization_endpoint: "https://comfycamp.space/oauth/authorize", + token_endpoint: "https://comfycamp.space/oauth/token", + userinfo_endpoint: "https://comfycamp.space/oauth/userinfo", + jwks_uri: "https://comfycamp.space/.well-known/jwks.json", + response_types_supported: ["code"], + id_token_signing_alg_values_supported: ["HS256"], + scopes_supported: ["openid", "profile", "email"], + claims_supported: ["sub", "email", "preferred_username"] + } + end end diff --git a/lib/comfycamp_web/router.ex b/lib/comfycamp_web/router.ex index e25cf87..9136e7c 100644 --- a/lib/comfycamp_web/router.ex +++ b/lib/comfycamp_web/router.ex @@ -32,6 +32,7 @@ defmodule ComfycampWeb.Router do pipe_through :api post "/oauth/token", OauthController, :token + get "/oauth/discovery", OauthController, :openid_discovery end # Enable LiveDashboard and Swoosh mailbox preview in development