Header menu logo FSharp.ATProto

OAuthClient Module

OAuth client for the AT Protocol authorization flow. Implements PKCE (RFC 7636), PAR (RFC 9126), and DPoP (RFC 9449).

Functions and values

Function or value Description

completeAuthorization httpClient clientMetadata authState authorizationCode

Full Usage: completeAuthorization httpClient clientMetadata authState authorizationCode

Parameters:
Returns: Task<Result<OAuthSession, OAuthError>>

Complete the authorization flow by exchanging the authorization code for tokens. Call this after the user is redirected back with an authorization code.

httpClient : HttpClient
clientMetadata : ClientMetadata
authState : AuthorizationState
authorizationCode : string
Returns: Task<Result<OAuthSession, OAuthError>>

createAuthenticatedRequest session httpMethod url nonce

Full Usage: createAuthenticatedRequest session httpMethod url nonce

Parameters:
Returns: HttpRequestMessage

Create a DPoP-authenticated HTTP request. Adds the Authorization header with DPoP token type and a DPoP proof header.

session : OAuthSession
httpMethod : HttpMethod
url : string
nonce : string option
Returns: HttpRequestMessage

refreshToken httpClient clientMetadata session

Full Usage: refreshToken httpClient clientMetadata session

Parameters:
Returns: Task<Result<OAuthSession, OAuthError>>

Refresh an expired access token using the refresh token. Returns a new OAuthSession with updated tokens.

httpClient : HttpClient
clientMetadata : ClientMetadata
session : OAuthSession
Returns: Task<Result<OAuthSession, OAuthError>>

startAuthorization httpClient clientMetadata serverMetadata redirectUri

Full Usage: startAuthorization httpClient clientMetadata serverMetadata redirectUri

Parameters:
Returns: Task<Result<(string * AuthorizationState), OAuthError>>

Start an authorization flow. Returns the authorization URL to redirect the user to and the state to save for completing the flow after the callback.

httpClient : HttpClient
clientMetadata : ClientMetadata
serverMetadata : AuthorizationServerMetadata
redirectUri : string
Returns: Task<Result<(string * AuthorizationState), OAuthError>>

Type something to start searching.