Note: introduced in 0.24.0.

The :oauth plugin manages the handling of a given OAuth 2.0 session, in that it ships with convenience methods to generate a new access token, which it then injects in all requests.

http = HTTPX.plugin(:oauth).oauth_auth(
  issuer: "https://id-provider",
  client_id: "CLIENT_ID",
  client_secret: "SECRET",
  scope: "all"

session_with_token = http.with_access_token

session_with_token.get("https://super-secret/resource") #=> access token used in the authorization header.

It supports only the “client_credentials” and “refresh_token” auth flows, and “client_secret_basic” and “client_secret_post” as auth methods.

When possible, metadata discovery will be available, behind “/.well-known/oauth-authorization-server”.

Next: SSRF Filter