Authenticates a user through the device code flow. This flow is designed for devices that don't have a web browser or have input constraints.
Details
The device code flow displays a code that the user must enter on another device with a web browser to complete authentication. This is ideal for CLI applications, headless servers, or devices without a browser.
The credential supports token caching to avoid repeated authentication. Tokens can be cached to disk or in memory.
Super classes
azr::Credential -> azr::InteractiveCredential -> DeviceCodeCredential
Methods
Method new()
Create a new device code credential
Usage
DeviceCodeCredential$new(
scope = NULL,
tenant_id = NULL,
client_id = NULL,
use_cache = "disk",
offline = TRUE
)Arguments
scopeA character string specifying the OAuth2 scope. Defaults to
NULL.tenant_idA character string specifying the Azure Active Directory tenant ID. Defaults to
NULL.client_idA character string specifying the application (client) ID. Defaults to
NULL.use_cacheA character string specifying the cache type. Use
"disk"for disk-based caching or"memory"for in-memory caching. Defaults to"disk".offlineA logical value indicating whether to request offline access (refresh tokens). Defaults to
TRUE.
Method get_token()
Get an access token using device code flow
Returns
An httr2::oauth_token() object containing the access token
Method req_auth()
Add OAuth device code authentication to an httr2 request
Arguments
reqAn
httr2::request()object
Examples
# DeviceCodeCredential requires an interactive session
if (FALSE) { # \dontrun{
# Create credential with default settings
cred <- DeviceCodeCredential$new()
# Get an access token (will prompt for 'device code' flow)
token <- cred$get_token()
# Force re-authentication
token <- cred$get_token(reauth = TRUE)
# Use with httr2 request
req <- httr2::request("https://management.azure.com/subscriptions")
req <- cred$req_auth(req)
} # }