JWT编码器服务定制

编辑该页面

JWT编码器服务定制

这个包有两个编码器内置的令牌,一个基于namshi /穆图书馆(默认)和后来的根据lcobucci / jwt图书馆。如果不适合你的需要,你可以把它换成自己的编码器服务。下面是一个示例实现nixilla / php-jwt图书馆基于编码器。

创建自己的编码器

创建编码器类

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47岁
/ / src / App /编码器/ NixillaJWTEncoder.php名称空间应用程序\编码器;使用JWT\身份验证\JWT;使用Lexik\\JWTAuthenticationBundle\编码器\JWTEncoderInterface;使用Lexik\\JWTAuthenticationBundle\异常\JWTEncodeFailureException;使用Lexik\\JWTAuthenticationBundle\异常\JWTDecodeFailureException;/ * * * NixillaJWTEncoder * *@author尼古拉斯·卡伯特< n.cabot@lexik。fr > * /NixillaJWTEncoder实现了JWTEncoderInterface{私人美元关键;公共函数__construct(字符串美元关键=“super_secret_key”){美元- >关键=美元关键;}/ * * * {@inheritdoc}* /公共函数编码(数组美元数据){试一试{返回JWT::编码(美元数据,美元- >关键);}(\异常美元e){JWTEncodeFailureException (JWTEncodeFailureException::INVALID_CONFIG,”时发生一个错误编码JWT令牌。”,美元e);}}/ * * * {@inheritdoc}* /公共函数解码(美元令牌){试一试{返回(数组智威汤逊广告公司)::解码(美元令牌,美元- >关键);}(\异常美元e){JWTDecodeFailureException (JWTDecodeFailureException::INVALID_TOKEN,“无效JWT令牌”,美元e);}}}

声明这是一个服务

1 2 3 4
#配置/ services.yaml服务:acme_api.encoder.nixilla_jwt_encoder:类:App \编码器\ NixillaJWTEncoder

把它作为编码器服务

1 2 3 4 5
#配置/包/ lexik_jwt_authentication.yamllexik_jwt_authentication:#……编码器:服务:acme_api.encoder.nixilla_jwt_encoder

请注意

您可以使用lexik_jwt_authentication.encoder.crypto_enginelexik_jwt_authentication.encoder.signature_algorithm注射代表相应的配置选项的参数作为参数编码器的服务,然后通过图书馆使用的编码器是基于。

看到配置引用为更多的信息。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。