ApiPlatformOpenApi不使用JWT令牌。
创始人
2024-09-08 02:30:08
0

在Api Platform中配置JWT令牌并使用它作为身份验证机制,需要以下几个步骤:

  1. 安装LexikJWTAuthenticationBundle或其它JWT Bundle,例如LCobucciJWTBundle。

  2. 在config/packages/security.yaml中添加JWT配置:

    security:
         encoders:
             App\Entity\User:
                 algorithm: auto
                 cost: 12
         providers:
             my_provider:
                 entity:
                     class: App\Entity\User
                     property: email
         firewalls:
             main:
                 anonymous: ~
                 guard:
                     authenticators:
                         - lexik_jwt_authentication.jwt_token_authenticator
                 provider: my_provider
                 stateless: true
     lexik_jwt_authentication:
         secret_key: '%env(APP_SECRET)%'
         public_key: '%env(PUBLIC_KEY_PATH)%'
         authentication_token_ttl: 86400
    
  3. 在config/routes.yaml中添加JWT路由:

     api_login:
         path: /api/login_check
         methods: ['POST']
    
  4. 在User类中实现UserInterface接口:

     namespace App\Entity;
    
     use Doctrine\ORM\Mapping as ORM;
     use Symfony\Component\Security\Core\User\UserInterface;
    
     /**
      * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
      */
     class User implements UserInterface
     {
         /**
          * @ORM\Id()
          * @ORM\GeneratedValue()
          * @ORM\Column(type="integer")
          */
         private $id;
    
         /**
          * @ORM\Column(type="string", length=180, unique=true)
          */
         private $email;
    
         /**
          * @ORM\Column(type="json")
          */
         private $roles = [];
    
         /**
          * @ORM\Column(type="string", length=100)
          */
         private $password;
    
         public function getId(): ?int
         {
             return $this->id;
         }
    
         public function getEmail(): ?string
         {
             return $this->email;
         }
    
         public function setEmail(string $email): self
         {
             $this->email = $email;
    
             return $this;
         }
    
         public function getRoles(): array
         {
             $roles = $this->roles;
    
             // guarantee every user at least has ROLE_USER
             $roles[] = 'ROLE_USER';
    
             return array_unique($roles);
         }
    
         public function setRoles(array $roles): self
         {
             $this->roles = $roles;
    
             return $this;
         }
    
         public function getPassword(): ?string
         {
             return $this->password;
         }
    
         public function setPassword(string $password): self
         {
             $this->password = $password;
    
             return $this;
         }
    
         public function getSalt()
         {
    

相关内容

热门资讯

玩家必用!新上游私人辅助,微友... 玩家必用!新上游私人辅助,微友联盟辅助,可靠教程(有挂详细)1、下载安装好新上游私人辅助,进入游戏主...
一分钟快速了解!海贝之城透视辅... 一分钟快速了解!海贝之城透视辅助器,兴动互娱辅助工具名称,可靠教程(有挂攻略);无需打开直接搜索加(...
总算清楚!!心悦辅助器下载,欢... 总算清楚!!心悦辅助器下载,欢乐情怀辅助挂,普及教程(有挂技术)1、下载安装好心悦辅助器下载,进入游...
热门推荐!九江讨赏插件,丽水都... 热门推荐!九江讨赏插件,丽水都莱脚本辅助视频,透明挂教程(有挂方针)1、下载安装好丽水都莱脚本辅助视...
推荐一款!!微乐小程序辅助开挂... 推荐一款!!微乐小程序辅助开挂,福建天天开心王国辅助,教你教程(有挂神器);无需打开直接搜索加(薇:...
玩家实测!多乐辅助在哪里可以下... 玩家实测!多乐辅助在哪里可以下载,大菠萝挂机辅助,辅助教程(有挂细节);无需打开直接搜索加薇1367...
实测揭晓!!蜀山四川小程序作弊... 您好:蜀山四川小程序作弊视频这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
信息共享!阿拉斗牌辅助视频,创... 信息共享!阿拉斗牌辅助视频,创乐源辅助软件,黑科技教程(发现有挂);无需打开直接搜索加(薇:1367...
一分钟了解!!微乐贵阳捉鸡麻将... 一分钟了解!!微乐贵阳捉鸡麻将挂软件,开心泉州免费辅助器,我来教教你(有挂解密);无需打开直接搜索加...
必备教程!新二号辅助下载,同城... 必备教程!新二号辅助下载,同城游辅助软件,可靠教程(有挂方法)1、下载安装好新二号辅助下载,进入游戏...