module OAuth2

Overview

The OAuth module provides an OAuth2::Client as specified by RFC 6749.

NOTE To use OAuth2, you must explicitly import it with require "oauth2"

Performing HTTP client requests with OAuth2 authentication

Assuming you have an access token, you can setup an HTTP::Client to be authenticated with OAuth2 using this code:

require "http/client"
require "oauth2"

# Here we use a bearer token, but it could be a mac token. We also set the
# expires in value to 172,800 seconds, or 48 hours
access_token = OAuth2::AccessToken::Bearer.new("some_access_token", 172_800)

# Create an HTTP::Client
client = HTTP::Client.new("api.example.com", tls: true)

# Prepare it for using OAuth2 authentication
access_token.authenticate(client)

# Execute requests as usual: they will be authenticated
client.get("/some_path")

This is implemented with HTTP::Client#before_request to add an authorization header to every request.

Obtaining access tokens

See OAuth2::Client for an example.

Defined in:

oauth2/auth_scheme.cr
oauth2/oauth2.cr