shinyOAuth: Provider-Agnostic OAuth Authentication for 'shiny' Applications

Provides a simple, configurable, provider-agnostic 'OAuth 2.0' and 'OpenID Connect' (OIDC) authentication framework for 'shiny' applications using 'S7' classes. Defines providers, clients, and tokens, as well as various supporting functions and a 'shiny' module. Features include cross-site request forgery (CSRF) protection, state encryption, 'Proof Key for Code Exchange' (PKCE) handling, validation of OIDC identity tokens (nonces, signatures, claims), automatic user info retrieval, asynchronous flows, and hooks for audit logging.

Version: 0.1.1
Depends: R (≥ 4.1.0)
Imports: S7 (≥ 0.2.0), R6 (≥ 2.0), rlang (≥ 1.0.0), shiny (≥ 1.7.0), jsonlite (≥ 1.0), openssl (≥ 2.0.0), httr2 (≥ 1.0.0), cachem (≥ 1.1.0), jose (≥ 1.2.0), cli (≥ 3.0.0), htmltools (≥ 0.5.0)
Suggests: testthat (≥ 3.0.0), knitr, rmarkdown, webfakes, promises, future, withr, later, sodium, shinytest2, xml2
Published: 2025-11-09
DOI: 10.32614/CRAN.package.shinyOAuth (may not be active yet)
Author: Luka Koning [aut, cre, cph]
Maintainer: Luka Koning <koningluka at gmail.com>
BugReports: https://github.com/lukakoning/shinyOAuth/issues
License: MIT + file LICENSE
URL: https://github.com/lukakoning/shinyOAuth, https://lukakoning.github.io/shinyOAuth/
NeedsCompilation: no
Materials: README, NEWS
CRAN checks: shinyOAuth results [issues need fixing before 2025-11-23]

Documentation:

Reference manual: shinyOAuth.html , shinyOAuth.pdf
Vignettes: Audit logging and hooks (source)
Authentication flow (source)
Example: Spotify login to display listening data (source, R code)
Usage (source, R code)

Downloads:

Package source: shinyOAuth_0.1.1.tar.gz
Windows binaries: r-devel: not available, r-release: not available, r-oldrel: not available
macOS binaries: r-release (arm64): shinyOAuth_0.1.1.tgz, r-oldrel (arm64): shinyOAuth_0.1.1.tgz, r-release (x86_64): shinyOAuth_0.1.1.tgz, r-oldrel (x86_64): not available

Linking:

Please use the canonical form https://CRAN.R-project.org/package=shinyOAuth to link to this page.