eonx-com / easy-api-token
Make your API accept multiple authentication strategies in a convenient way (Basic, ApiKey, JWT, ...)
Installs: 452 609
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 1
Type:symfony-bundle
Requires
- php: ^8.2
- ext-openssl: *
- eonx-com/easy-utils: ^6.3
- nette/utils: ^4.0
- psr/log: ^3.0
- symfony/dependency-injection: ^7.0
- symfony/http-foundation: ^7.0
- symfony/http-kernel: ^7.0
- symfony/security-bundle: ^7.0
- symfony/security-http: ^7.0
- symfony/service-contracts: ^3.5
Requires (Dev)
- auth0/auth0-php: ^8.6
- firebase/php-jwt: ^6.5
- laravel/lumen-framework: ^11.0
- nyholm/psr7: ^1.8
- paragonie/random_compat: ^2.0
- phpseclib/phpseclib: ^3.0.36
- phpunit/phpunit: ^10.2
- psr-discovery/discovery: ^1.0.2
- symfony/cache: ^7.0
- symfony/http-client: ^7.0
Suggests
- auth0/auth0-php: To use the Auth0 JWT driver to decode/encode tokens
- firebase/php-jwt: To use the Auth0, Amazon Cognito, or Firebase JWT driver to decode/encode tokens
- illuminate/contracts: To use this package with Laravel/Lumen
- illuminate/support: To use this package with Laravel/Lumen
- phpseclib/phpseclib: To use the Amazon Cognito JWT driver to decode/encode tokens
- symfony/cache: To use the Amazon Cognito JWT driver to decode/encode tokens
- symfony/http-client: To use the Amazon Cognito JWT driver to decode/encode tokens
- 6.x-dev
- dev-master / 6.4.x-dev
- 6.3.0
- 6.2.0
- 6.1.0
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 6.0.0-rc.1
- 6.0.0-alpha.5
- 6.0.0-alpha.4
- 6.0.0-alpha.3
- 6.0.0-alpha.2
- 6.0.0-alpha
- 5.13.2
- 5.13.1
- 5.13.0
- 5.12.1
- 5.12.0
- 5.11.3
- 5.11.2
- 5.11.1
- 5.11.0
- 5.10.5
- 5.10.4
- 5.10.3
- 5.10.2
- 5.10.1
- 5.10.0
- 5.9.3
- 5.9.2
- 5.9.1
- 5.9.0
- 5.8.0
- 5.7.5
- 5.7.4
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.16
- 5.6.15
- 5.6.14
- 5.6.13
- 5.6.12
- 5.6.11
- 5.6.10
- 5.6.9
- 5.6.8
- 5.6.7
- 5.6.6
- 5.6.5
- 5.6.4
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.0
- 5.4.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.7
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.x-dev
- 4.5.6
- 4.5.5
- 4.5.4
- 4.5.3
- 4.5.1
- 4.5.0
- 4.4.5
- 4.4.4
- 4.4.3
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.38
- 4.3.37
- 4.3.36
- 4.3.35
- 4.3.34
- 4.3.33
- 4.3.32
- 4.3.31
- 4.3.30
- 4.3.29
- 4.3.28
- 4.3.27
- 4.3.26
- 4.3.25
- 4.3.24
- 4.3.23
- 4.3.22
- 4.3.21
- 4.3.20
- 4.3.19
- 4.3.18
- 4.3.17
- 4.3.16
- 4.3.15
- 4.3.14
- 4.3.13
- 4.3.12
- 4.3.11
- 4.3.10
- 4.3.9
- 4.3.8
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.42
- 4.1.41
- 4.1.40
- 4.1.39
- 4.1.38
- 4.1.37
- 4.1.36
- 4.1.35
- 4.1.34
- 4.1.33
- 4.1.32
- 4.1.31
- 4.1.30
- 4.1.29
- 4.1.28
- 4.1.27
- 4.1.26
- 4.1.25
- 4.1.24
- 4.1.23
- 4.1.22
- 4.1.21
- 4.1.20
- 4.1.19
- 4.1.18
- 4.1.17
- 4.1.16
- 4.1.15
- 4.1.14
- 4.1.13
- 4.1.12
- 4.1.11
- 4.1.10
- 4.1.9
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.1.0-rc1
- 4.0.15
- 4.0.14
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 3.x-dev
- 3.4.29
- 3.4.28
- 3.4.27
- 3.4.26
- 3.4.25
- 3.4.24
- 3.4.24-beta1
- 3.4.23
- 3.4.22
- 3.4.21
- 3.4.20
- 3.4.19
- 3.4.18
- 3.4.17
- 3.4.16
- 3.4.15
- 3.4.14
- 3.4.13
- 3.4.12
- 3.4.11
- 3.4.10
- 3.4.9
- 3.4.8
- 3.4.7
- 3.4.6
- 3.4.5
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.15
- 3.3.14
- 3.3.13
- 3.3.12
- 3.3.11
- 3.3.10
- 3.3.9
- 3.3.8
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.14
- 3.2.13
- 3.2.12
- 3.2.11
- 3.2.10
- 3.2.9
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.2.0-alpha4
- 3.2.0-alpha3
- 3.2.0-alpha2
- 3.2.0-alpha1
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.5-alpha8
- 3.1.5-alpha7
- 3.1.5-alpha6
- 3.1.5-alpha5
- 3.1.5-alpha4
- 3.1.5-alpha3
- 3.1.5-alpha2
- 3.1.5-alpha1
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.2-alpha4
- 3.1.2-alpha3
- 3.1.2-alpha2
- 3.1.2-alpha1
- 3.1.1
- 3.1.1-alpha2
- 3.1.1-alpha1
- 3.1.0
- 3.1.0-rc2
- 3.1.0-rc1
- 3.0.30
- 3.0.29
- 3.0.28
- 3.0.27
- 3.0.26
- 3.0.25
- 3.0.24
- 3.0.23
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.14-alpha3
- 3.0.14-alpha2
- 3.0.14-alpha1
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.5-alpha4
- 3.0.5-alpha3
- 3.0.5-alpha2
- 3.0.5-alpha1
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-alpha2
- 3.0.0-alpha1
- 2.5.33
- 2.5.32
- 2.5.31
- 2.5.30
- 2.5.29
- 2.5.28
- 2.5.27
- v2.5.26
- v2.5.25
- v2.5.24
- v2.5.23
- v2.5.22
- v2.5.21
- v2.5.20
- v2.5.19
- v2.5.18
- v2.5.17
- v2.5.16
- v2.5.15
- v2.5.14
- v2.5.13
- v2.5.12
- v2.5.11
- v2.5.10
- v2.5.9
- v2.5.8
- v2.5.7
- v2.5.6
- v2.5.5
- v2.5.4
- v2.5.3
- v2.5.2
- v2.5.1
- v2.5.0
- v2.4.49
- v2.4.48
- v2.4.47
- v2.4.46
- v2.4.45
- v2.4.44
- v2.4.43
- v2.4.42
- v2.4.41
- v2.4.40
- v2.4.39
- v2.4.38
- v2.4.37
- v2.4.36
- v2.4.35
- v2.4.34
- v2.4.33
- v2.4.32
- v2.4.31
- v2.4.30
- v2.4.29
- v2.4.28
- v2.4.27
- v2.4.26
- v2.4.25
- v2.4.24
- v2.4.23
- v2.4.22
- v2.4.21
- v2.4.20
- v2.4.19
- v2.4.18
- v2.4.17
- v2.4.16
- v2.4.15
- v2.4.14
- v2.4.13
- v2.4.12
- v2.4.11
- v2.4.10
- v2.4.9
- v2.4.8
- v2.4.7
- v2.4.6
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.17
- v2.3.16
- v2.3.15
- v2.3.14
- v2.3.13
- v2.3.12
- v2.3.11
- v2.3.10
- v2.3.9
- v2.3.8
- v2.3.7
- v2.3.6
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.1
- v1.0.0
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.11
- v0.10.10
- v0.10.9
- v0.10.8
- v0.10.7
- dev-feature/swoole-error-response
- dev-hotfix/swoole-pdo-client-pool-own-implementation
- dev-np/investigate-swoole-errors-in-aws
- dev-feature/git-subtree-for-split-1
- dev-feature/git-subtree-for-split
- dev-feature/easy-async-refactor
- dev-3.x-split-test
- dev-feature/exception-to-status-code
- dev-feature/easy-request-id
- dev-feature/error-handler-framework-agnostic
- dev-feature/easy-bugsnag
- dev-integration/easy-api-token-and-easy-security
- dev-feature/refactory-easy-api-token
- dev-feature/easy-webhook-profiler
- dev-feature/search-in-easy-core
- dev-feature/easy-webhooks
- dev-feature/aws-sso-access-token
- dev-feature/aws-credentials-finder
- dev-feature/refactor-easy-security
- dev-feature/improve-data-persister-structure
- dev-hotfix/data-persister-decoration-priority
- dev-feature/persister-route-paremeters-aware
- dev-feature/make-commands
- dev-feature/improve-easy-ssm-console-export
- dev-feature/auto-configure-doctrine-listeners
- dev-feature/enhance-api-platform
- dev-whitesource/configure
- dev-feature/migrate-core-bundle
- dev-HEAD
- dev-feature/new-branch-for-split-test
- dev-feature/new-branch-for-split-test-1
- dev-feature/easy-async-package
- dev-feature/easier-permissions
- dev-feature/easy-test-package
This package is auto-updated.
Last update: 2024-11-07 13:52:57 UTC
README
---eonx_docs--- title: Introduction weight: 0 ---eonx_docs---
It is common to restrict access to the endpoints of an API by implementing an authentication mechanism. To do so, you have a lot of available solutions: Basic Auth, API keys, JWTs, etc. Which one to pick? There is no magic solution, and you should make your decision based on the specific problem you're trying to solve.
This package will decode the incoming HTTP Request to extract the "ApiToken" as a PHP object that your application can then use. It comes with built-in decoders for:
- Basic Auth
- API keys
- JWTs (Amazon Cognito, Auth0, Firebase)
So you can start supporting each of those strategies with no effort. It also provides a "chain" decoder allowing you to support multiple ApiToken strategies for the same API endpoint.
Each ApiToken implements a common interface allowing you to use them as parameters regardless of the ApiToken strategy used, also each ApiToken has its own specific PHP class allowing you to implement business logic based on the ApiToken strategy used.
Require package (Composer)
The recommended way to install this package is to use Composer:
$ composer require eonx-com/easy-api-token