class RubyLLM::MCP::Auth::TokenManager
def exchange_authorization_code(server_metadata, client_info, code, pkce, server_url)
-
(Token)- access token
Parameters:
-
server_url(String) -- MCP server URL -
pkce(PKCE) -- PKCE parameters -
code(String) -- authorization code -
client_info(ClientInfo) -- client info -
server_metadata(ServerMetadata) -- server metadata
def exchange_authorization_code(server_metadata, client_info, code, pkce, server_url) logger.debug("Exchanging authorization code for access token") registered_redirect_uri = client_info.metadata.redirect_uris.first params = build_auth_code_params(client_info, code, pkce, registered_redirect_uri, server_url) response = post_token_exchange(server_metadata, params) response = retry_if_redirect_mismatch(response, server_metadata, params, registered_redirect_uri) validate_token_response!(response, "Token exchange") parse_token_response(response) end