halloverden/symfony-jwt-authenticator-bundle

Symfony的JWT认证器

2.1.0 2024-04-18 15:30 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序列化器,并支持RS256HS256签名算法。

有关如何创建自己的加载器的信息,请参阅PHP JWT框架

声明检查器(claim_cheker

提供了一个默认的声明检查器(hallo_verden_default),此检查器检查expiatnbf声明。

有关如何创建自己的检查器的信息,请参阅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为此选项来修改此响应。