The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Package {solidauthr}


Type: Package
Title: Solid OIDC Client Credentials Authentication
Version: 0.1.2
Description: Authenticates against Community Solid Server identity providers using OAuth client credentials with DPoP proofs and performs authenticated requests against Solid resources.
License: MIT + file LICENSE
Encoding: UTF-8
Depends: R (≥ 4.1.0)
Imports: httr2, jose, jsonlite, openssl, R6, uuid
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
URL: https://github.com/SetMeld/solidauthr
BugReports: https://github.com/SetMeld/solidauthr/issues
NeedsCompilation: no
Packaged: 2026-05-04 17:35:55 UTC; jacksonmorgan
Author: Jackson Morgan [aut, cre, cph]
Maintainer: Jackson Morgan <jackson@setmeld.com>
Repository: CRAN
Date/Publication: 2026-05-07 16:10:03 UTC

solidauthr: Solid OIDC Client Credentials Authentication

Description

Utilities for authenticating against Community Solid Server identity providers with OAuth client credentials and DPoP, then issuing authenticated requests to Solid resources.


Create a Solid OIDC session

Description

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.

Usage

solid_session(issuer, client_id, client_secret, safety_margin = 30L)

Arguments

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.

Value

An R6 SolidSession object with methods for authenticated HTTP requests and access-token retrieval.

Examples

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()
}

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.