| Title: | Solid OIDC Client Credentials Authentication |
|---|---|
| Description: | Authenticates against Community Solid Server identity providers using OAuth client credentials with DPoP proofs and performs authenticated requests against Solid resources. |
| Authors: | Jackson Morgan [aut, cre, cph] |
| Maintainer: | Jackson Morgan <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.2 |
| Built: | 2026-05-07 18:31:39 UTC |
| Source: | https://github.com/cran/solidauthr |
Utilities for authenticating against Community Solid Server identity providers with OAuth client credentials and DPoP, then issuing authenticated requests to Solid resources.
Discovers the issuer's OpenID configuration, creates a session-scoped DPoP key,
obtains DPoP-bound access tokens with the webid scope, and attaches
fresh DPoP proofs to outgoing Solid requests.
solid_session(issuer, client_id, client_secret, safety_margin = 30L)solid_session(issuer, client_id, client_secret, safety_margin = 30L)
issuer |
A length-1 character vector giving the issuer base URL for a Community Solid Server identity provider. |
client_id |
A length-1 character vector giving the OAuth client ID. |
client_secret |
A length-1 character vector giving the OAuth client secret. |
safety_margin |
A number of seconds to subtract from token expiry when deciding whether a token should be refreshed. |
An R6 SolidSession object with methods for authenticated HTTP requests
and access-token retrieval.
issuer <- Sys.getenv("SOLID_ISSUER") client_id <- Sys.getenv("SOLID_CLIENT_ID") client_secret <- Sys.getenv("SOLID_CLIENT_SECRET") if (nzchar(issuer) && nzchar(client_id) && nzchar(client_secret)) { session <- solid_session( issuer = issuer, client_id = client_id, client_secret = client_secret ) session$token() }issuer <- Sys.getenv("SOLID_ISSUER") client_id <- Sys.getenv("SOLID_CLIENT_ID") client_secret <- Sys.getenv("SOLID_CLIENT_SECRET") if (nzchar(issuer) && nzchar(client_id) && nzchar(client_secret)) { session <- solid_session( issuer = issuer, client_id = client_id, client_secret = client_secret ) session$token() }