@openid4vc/oauth2
An implementation of the OAuth 2.0 Authorization Framework, including extension specifications:
- RFC 9126 - OAuth 2.0 Pushed Authorization Requests
- OAuth 2.0 for First-Party Applications - Draft 0
- RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients
- RFC 9449 - OAuth 2.0 Demonstrating Proof of Possession (DPoP)
- RFC 7662 - OAuth 2.0 Token Introspection
- RFC 9068 JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens
- RFC 8707 - Resource Indicators for OAuth 2.0
- OAuth 2.0 Attestation-Based Client Authentication
- RFC 9207 - OAuth 2.0 Authorization Server Issuer Identification
This package was previously developed in the oid4vc-ts repository. The @openid4vc/* packages are versioned together, separately from the other packages in this repository.
Installation
# Using npm
npm install @openid4vc/oauth2
# Using pnpm
pnpm add @openid4vc/oauth2
# Using yarn
yarn add @openid4vc/oauth2
Usage
import { Oauth2AuthorizationServer, Oauth2Client, Oauth2ResourceServer } from '@openid4vc/oauth2'
Dependencies
Platform Support
This library is platform agnostic and works in:
- Node.js (>=22)
- Browsers (modern browsers with ES2020 support)
- React Native
The environment must provide an implementation of URL and URLSearchParams. Platform-specific functionality such as hashing, generating random bytes and signing is provided through callbacks. If no global fetch is available in your environment, it also needs to be provided through the callbacks.
Contributing
See the Contributing Guide for details on how to contribute to this project.
License
This project is licensed under the Apache License Version 2.0 (Apache-2.0).
Credits
This library was initially created by Animo as part of the SPRIN-D EUDI Wallet Prototypes Funke.