DeviceCodeCredential: Device code credential authentication

DeviceCodeCredentialR Documentation

Device code credential authentication

Description

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

Public methods

Inherited 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,
  interactive = TRUE
)
Arguments
scope

A character string specifying the OAuth2 scope. Defaults to NULL.

tenant_id

A character string specifying the Azure Active Directory tenant ID. Defaults to NULL.

client_id

A character string specifying the application (client) ID. Defaults to NULL.

use_cache

A character string specifying the cache type. Use "disk" for disk-based caching or "memory" for in-memory caching. Defaults to "disk".

offline

A logical value indicating whether to request offline access (refresh tokens). Defaults to TRUE.

interactive

A logical value indicating whether this credential requires user interaction. Defaults to TRUE.

Returns

A new DeviceCodeCredential object


Method get_token()

Get an access token using device code flow

Usage
DeviceCodeCredential$get_token(reauth = FALSE)
Arguments
reauth

A logical value indicating whether to force reauthentication. Defaults to FALSE.

Returns

An httr2::oauth_token() object containing the access token


Method req_auth()

Add OAuth device code authentication to an httr2 request

Usage
DeviceCodeCredential$req_auth(req)
Arguments
req

An httr2::request() object

Returns

The request object with OAuth device code authentication configured


Method clone()

The objects of this class are cloneable with this method.

Usage
DeviceCodeCredential$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Examples

# DeviceCodeCredential requires an interactive session
## Not run: 
# 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)

## End(Not run)

azr documentation built on Feb. 18, 2026, 1:07 a.m.