halloverden / symfony-jwt-authenticator-bundle
Symfony的JWT认证器
Requires
- php: >=8.2
- symfony/security-bundle: ^6.4|^7.0
- symfony/yaml: ^6.4|^7.0
- web-token/jwt-bundle: ^3.0
- web-token/jwt-library: ^3.0
Requires (Dev)
- symfony/phpunit-bridge: ^6.4|^7.0
This package is auto-updated.
Last update: 2024-09-18 16:28:05 UTC
README
本扩展为Symfony应用程序提供JWT认证器。它使用PHP JWT框架进行JWT的解析和验证。
安装
确保已全局安装Composer,如Composer文档中的安装章节所述。
使用Symfony Flex的应用程序
打开命令行控制台,进入您的项目目录,然后执行以下命令
$ composer require halloverden/symfony-jwt-authenticator-bundle
不使用Symfony Flex的应用程序
步骤1:下载扩展
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此扩展的最新稳定版本
$ composer require halloverden/symfony-jwt-authenticator-bundle
步骤2:启用扩展
然后,通过将其添加到项目config/bundles.php
文件中注册的扩展列表中来启用扩展
// config/bundles.php return [ // ... HalloVerden\JwtAuthenticatorBundle\HalloVerdenJwtAuthenticatorBundle::class => ['all' => true], ];
配置
安全配置
认证器已在安全配置中启用并配置。
示例配置
# config/packages/security.yaml security: # ... firewalls: main: hallo_verden_jwt: provider: 'user_provider' failure_handler: ~ token: key_set: 'my_key_set' jws_loader: 'hallo_verden_default' claim_checker: 'hallo_verden_default' mandatory_claims: [] user_identifier_claim: 'sub' token_extractor: 'hallo_verden.token_extractor.bearer'
密钥集(key_set
)
您需要提供一个密钥集。
有关如何提供密钥集的信息,请参阅PHP JWT框架。
JWS加载器(jws_loader
)
提供了一个默认的JWS加载器(hallo_verden_default
),此加载器使用jws_compact
序列化器,并支持RS256
和HS256
签名算法。
有关如何创建自己的加载器的信息,请参阅PHP JWT框架。
声明检查器(claim_cheker
)
提供了一个默认的声明检查器(hallo_verden_default
),此检查器检查exp
、iat
和nbf
声明。
有关如何创建自己的检查器的信息,请参阅PHP JWT框架。
必填声明(mandatory_claims
)
在此处指定需要在JWT中必填的声明。自动添加了user_identifier_claim
作为必填声明。
用户标识声明(user_identifier_claim
)
此声明被发送到用户提供者以检索用户。
令牌提取器(token_extractor
)
默认提取器hallo_verden.token_extractor.bearer
从授权头中获取bearer令牌。您可以创建自己的提取器,通过实现TokenExtractorInterface并将服务ID设置为此选项。
失败处理器(failure_handler
)
默认情况下,在失败时发送以下响应
{ "error": "INVALID_TOKEN" }
您可以通过创建一个实现AuthenticationFailureHandlerInterface的服务并设置服务ID为此选项来修改此响应。