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()
         {
    

相关内容

热门资讯

wepoke ai辅助!wep... wepoke ai辅助!wepoke可以使用模拟器,wepok软件透明挂,攻略教程(有挂技巧)1、点...
wepoke辅助挂!wepok... wepoke辅助挂!wepoke有插件,wepOkE总是真的有挂,科技教程(有挂细节);玩家必备必赢...
玩家攻略推荐!天天斗牌大联盟麻... 玩家攻略推荐!天天斗牌大联盟麻将(透明挂)好像真的有挂(2021已更新)(哔哩哔哩)1、构建自己的天...
微扑克有辅助挂!微扑克大厅都是... 微扑克有辅助挂!微扑克大厅都是机器人,德州扑克微扑克俱乐部,系统教程(有挂机密)是一款可以让一直输的...
wepokeai机器人!wep... 这是一款非常优秀的WepOke ia辅助检测软件,能够让你了解到WepOke中牌率当中全部隐藏参数,...
揭秘一下!科乐麻将系统规律(透... 揭秘一下!科乐麻将系统规律(透视)原来是有挂(2026已更新)(哔哩哔哩)1、科乐麻将系统规律系统规...
微扑克有辅助挂!微扑克有后台控... 微扑克有辅助挂!微扑克有后台控制(透明挂)原来真的是有挂1、超多福利:超高返利,海量正版游戏,微扑克...
WePoKe外 挂!wopok... 1、WePoKe外 挂!wopoker有外 挂(透明挂)wEpOke(就是真的有挂);该软件可以轻松...
程序员教你!欢乐划水麻将是不是... 程序员教你!欢乐划水麻将是不是有猫腻(透视辅助)都是有挂(2024已更新)(哔哩哔哩)1、点击下载安...
微扑克系统发牌规律!微扑克有计... 1、微扑克系统发牌规律!微扑克有计算器,微扑克ai软件(确实真的有挂);代表性(透视辅助软件透明挂)...