1/* 2oidc is a package for writing clients that integrate with OIDC Providers using 3OIDC flows. 4 5 6Primary types provided by the package: 7 8* Request: represents one OIDC authentication flow for a user. It contains the 9data needed to uniquely represent that one-time flow across the multiple 10interactions needed to complete the OIDC flow the user is attempting. All 11Requests contain an expiration for the user's OIDC flow. Optionally, Requests may 12contain overrides of configured provider defaults for audiences, scopes and a 13redirect URL. 14 15* Token: represents an OIDC id_token, as well as an Oauth2 access_token and 16refresh_token (including the access_token expiry) 17 18* Config: provides the configuration for OIDC provider used by a relying 19party (for example: client ID/Secret, redirectURL, supported 20signing algorithms, additional scopes requested, etc) 21 22* Provider: provides integration with a provider. The provider provides 23capabilities like: generating an auth URL, exchanging codes for tokens, 24verifying tokens, making user info requests, etc. 25 26The oidc.callback package 27 28The callback package includes handlers (http.HandlerFunc) which can be used 29for the callback leg an OIDC flow. Callback handlers for both the authorization 30code flow (with optional PKCE) and the implicit flow are provided. 31 32Example apps 33 34Complete concise example solutions: 35 36* OIDC authentication CLI: 37https://github.com/hashicorp/cap/tree/main/oidc/examples/cli/ 38 39* OIDC authentication SPA: 40https://github.com/hashicorp/cap/tree/main/oidc/examples/spa/ 41 42*/ 43package oidc 44