DocuSign.OAuth.AuthorizationCodeStrategy (DocuSign v2.2.1)

View Source

OAuth2 Authorization Code Flow strategy for DocuSign using the battle-tested oauth2 library.

This module implements the standard OAuth2 Authorization Code Flow for DocuSign, leveraging the existing OAuth2 library infrastructure used by the JWT impersonation flow.

Usage

# Create client
client = DocuSign.OAuth.AuthorizationCodeStrategy.client(
  client_id: "your_integration_key",
  client_secret: "your_secret",
  redirect_uri: "https://yourapp.com/auth/docusign/callback"
)

# Generate authorization URL
auth_url = OAuth2.Client.authorize_url!(client, scope: "signature")

# Exchange authorization code for tokens
client = OAuth2.Client.get_token!(client, code: "auth_code_from_callback")

# Get DocuSign user info
user_info = DocuSign.OAuth.AuthorizationCodeStrategy.get_user_info!(client)

Configuration

config :docusign,
  client_id: "your_integration_key",
  client_secret: "your_secret_key",
  hostname: "account-d.docusign.com"  # or "account.docusign.com" for production

Summary

Functions

Create a new OAuth2 client for DocuSign Authorization Code Flow.

Get DocuSign user information using the access token.

Functions

client(opts \\ [])

@spec client(keyword()) :: OAuth2.Client.t()

Create a new OAuth2 client for DocuSign Authorization Code Flow.

Parameters

  • opts - Keyword list of options:
    • :client_id - DocuSign integration key (required if not in app config)
    • :client_secret - DocuSign secret (required if not in app config)
    • :hostname - DocuSign hostname (required if not in app config)
    • :redirect_uri - Callback URL for authorization (required)
    • :scope - OAuth scopes (default: "signature")

Examples

# With explicit configuration
client = DocuSign.OAuth.AuthorizationCodeStrategy.client(
  client_id: "your_integration_key",
  client_secret: "your_secret",
  hostname: "account-d.docusign.com",
  redirect_uri: "https://yourapp.com/auth/callback"
)

# Using application config
client = DocuSign.OAuth.AuthorizationCodeStrategy.client(
  redirect_uri: "https://yourapp.com/auth/callback"
)

Returns

Returns an OAuth2.Client struct configured for DocuSign Authorization Code Flow.

get_user_info!(client)

@spec get_user_info!(OAuth2.Client.t()) :: map()

Get DocuSign user information using the access token.

Parameters

  • client - OAuth2.Client with valid access token

Examples

user_info = get_user_info!(client)
user_email = user_info["email"]
accounts = user_info["accounts"]

Returns

Returns user information map from DocuSign /oauth/userinfo endpoint.