39 lines
1.1 KiB
Elixir
39 lines
1.1 KiB
Elixir
defmodule ComfycampWeb.OauthJSON do
|
|
def token(%{access_token: access_token, refresh_token: refresh_token, id_token: id_token}) do
|
|
%{
|
|
access_token: access_token,
|
|
token_type: "Bearer",
|
|
refresh_token: refresh_token,
|
|
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",
|
|
subject_types_supported: ["public"],
|
|
response_types_supported: ["code"],
|
|
id_token_signing_alg_values_supported: ["HS256"],
|
|
scopes_supported: ["openid", "profile", "email"],
|
|
claims_supported: ["sub", "email", "preferred_username"]
|
|
}
|
|
end
|
|
|
|
def user_info(%{user: user}) do
|
|
%{
|
|
sub: Integer.to_string(user.id),
|
|
email: user.email,
|
|
preferred_username: user.username
|
|
}
|
|
end
|
|
|
|
def error(assigns) do
|
|
%{
|
|
description: assigns["description"]
|
|
}
|
|
end
|
|
end
|