Download the PHP package digitalcz/openid-connect without Composer

On this page you can find all versions of the php package digitalcz/openid-connect. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package openid-connect

OIDC Connect

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require CI codecov

PHP implementation of OpenID Connect using symfony/contracts

Install

Via Composer

Usage

Initialization

Using the OIDC discovery endpoint

Using manual issuer configuration

Configuration Options

The OidcFactory::create() method accepts the following configuration options:

Parameter Type Required Default Description
httpClient HttpClientInterface - HTTP client for making requests
issuer string\|array\|IssuerMetadata - Issuer URL for discovery, metadata array, or IssuerMetadata instance
clientId string - OAuth2/OIDC client identifier
clientSecret string\|null - null OAuth2/OIDC client secret (required for some authentication methods)
redirectUri string\|null - null Redirect URI for authorization code flow
defaultScopes string\|array - ['openid', 'profile', 'email'] Default scopes to request (space-separated string or array)
authenticationMethod string\|AuthenticationMethod - client_secret_post Client authentication method for token endpoint
pkceMethod string\|PkceMethod - S256 PKCE method for authorization code flow (S256, plain, or none)
cache CacheInterface\|null - null Optional cache for storing discovery metadata and JWKS
clock ClockInterface - SimpleClock Clock implementation for time-based operations
cacheSecret string - 'default-oidc-cache-secret' Secret used for HMAC-based cache key generation
privateKey string\|null - null PEM-encoded private key for private_key_jwt authentication
privateKeyJwk JWK\|null - null JWK private key for private_key_jwt authentication (alternative to privateKey)
tokenEndpointAuthSigningAlg string\|null - null Signature algorithm for client assertion JWT (e.g., 'HS256', 'RS256')
clientAssertionAudience string\|null - null Audience claim for client assertion JWT. Special values: '{issuer}', '{token_endpoint}', or custom URL
accessTokenType string\|null - null Expected JWT access-token typ header (RFC 9068, e.g. 'at+jwt'); null disables the check
backchannelLogoutUri string\|null - null RP endpoint the OP POSTs logout tokens to (informational; exposed via clientMetadata())
backchannelLogoutSessionRequired bool - false Require the sid claim in logout tokens (rejected without it when true)

Authentication Methods

Authorization Code flow

Step 1 - Redirect the user to authorization endpoint

Step 2 - Handle the callback and exchange code for tokens

Client Credentials flow

Device Authorization flow

Implements the OAuth 2.0 Device Authorization Grant (RFC 8628) for browserless and input-constrained devices. Requires the provider to expose a device_authorization_endpoint.

Step 1 - Request a device and user code

Step 2 - Poll for tokens

pollForTokens() blocks until the user completes (or denies) authorization, honoring the server's polling interval and backing off automatically on slow_down:

If you need to drive the polling loop yourself, call fetchTokens() for a single attempt. It throws a typed exception per RFC 8628 error code: DeviceAuthorizationPendingException, SlowDownException, DeviceAuthorizationExpiredException, DeviceAuthorizationDeniedException, or the base DeviceAuthorizationException for any other error.

Resource Server (Token Validation)

To follow RFC 9068 and require JWT access tokens to be explicitly typed (rejecting, for example, an ID token presented as an access token), set accessTokenType:

When set, the typ header must be present and equal to the expected value; both at+jwt and application/at+jwt are accepted. It is disabled by default because not all authorization servers emit the typ header.

Audience validation

By default the resource server's JWT access-token validator accepts only tokens whose aud claim matches the clientId (opaque tokens are unaffected — they're validated via introspection, which only checks active). Use resourceServerAudience to decouple the accepted audience from the client id — for example when the resource server has several identities of its own, or when it must accept tokens minted for other first-party services:

Passing a list verifies that the token's aud (a single value or an array) intersects the configured audiences — this is the standard model for a resource server with multiple identities (RFC 9068 §4).

Passing null turns the audience check off. This is a deliberate deviation from RFC 9068, which requires rejecting a token whose aud does not identify the resource server. It exists for closed first-party token propagation across services sharing one issuer; the standards-correct alternative is Token Exchange (RFC 8693). The presence of the aud claim itself is still governed by the validator's mandatory-claims set. Leaving resourceServerAudience unset keeps the default (aud must equal clientId).

When wiring JwtAccessTokenValidator manually, the same string|list<string>|null values apply to its $audience argument. For fully custom validation you can inject a replacement set of claim checkers via $claimCheckers, which then supersedes the default issuer/audience/expiry/issued-at/not-before checkers.

Back-Channel Logout

Implements OpenID Connect Back-Channel Logout 1.0. The OP sends a server-to-server POST with a logout_token to your registered back-channel logout endpoint. Pass that token to the handler — it verifies the signature against the issuer JWKS and validates the logout-token claims (iss, aud, iat, events, no nonce, and sub and/or sid).

Two responsibilities the spec leaves to the application are intentionally left to you:

If the client is registered with backchannelLogoutSessionRequired: true, logout tokens without a sid claim are rejected.

See examples for more complete examples

Testing

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of openid-connect with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
symfony/cache-contracts Version ^3.6
symfony/http-client-contracts Version ^3.6
web-token/jwt-library Version ^4.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package digitalcz/openid-connect contains the following files

Loading the files please wait ...