MultiAuth::Discovery
Class methods
discover(domain : String) : NamedTuple(site: String, authorize_url: String, token_url: String, authentication_scheme: String, user_profile_url: String | Nil, scopes: String)
Discover OAuth2 configuration from a domain using .well-known/oauth-authorization-server
Example:
config = MultiAuth::Provider::GenericOAuth2.discover("https://gitlab.com")
MultiAuth.config("my_gitlab") do |db_id, redirect_uri|
MultiAuth::Provider::GenericOAuth2.new(
provider_name: "GitLab",
redirect_uri: redirect_uri,
key: ENV["GITLAB_CLIENT_ID"],
secret: ENV["GITLAB_CLIENT_SECRET"],
**config,
)
end
Returns a NamedTuple with the discovered configuration parameters
fetch_oauth2_metadata(base_url : String, max_redirects : Int32 = 5) : OAuth2Metadata
grabs oauth endpoint metadata as per https://datatracker.ietf.org/doc/html/rfc8414
perform_dynamic_client_registration(metadata : OAuth2Metadata, registration : ClientRegistrationRequest) : ClientRegistrationResponse
https://datatracker.ietf.org/doc/html/rfc7591