Symfony2 中的 JWT 令牌

Posted

技术标签:

【中文标题】Symfony2 中的 JWT 令牌【英文标题】:JWT Token in Symfony2 【发布时间】:2016-04-26 01:55:37 【问题描述】:

我需要在控制器 Symfony2 中读取 JWT 令牌,并将其发送到前端的 $localStorage(不是标准登录过程)。

我使用 AngularJS 1.4、Symfony2.7 (REST)、LexikJWTAuthenticationBundle。

如何在控制器中为登录用户读取此令牌?

(例如JWT令牌:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXUyJ9.eyJleHAiOjE0NTMyODkzNzAsInVzZXJuYW1lIjoibWFjaWVqLm9zeXRla0BnbWFpbC5jb20iLCJpYXQiOiIxNDUzMjAyOTcwIn0.P8d4dDSkUk26U6voqeDxJ6RtH2sy_d1fBcB_XHx_E8AOfmQuib3E54ERIRhuhl4T7bFTzpmpOZ-K-RcpkkdjfvlsfaM1R9KRkDVHXZ1KpQs4nF1u4SZef6SorAES-d4ZSnouKLS3BRLayXtpTOLGjzaq3RpKVIAIEZtEQNvKTZBUdvCvDd2X-_UmyMAxgFShNvpw2CSLmdFys45KjfcTP9l74hsK7-l5kkkqywa-q4feIPVkLHJ-J41oU2l6jGf_KbHW4pTNFJ_6X7c-awkHRxyphrcXbtK_BlBiwOff7hOsODTZhIBh2StTnmO0jegIlKlVxsnlP652zYzf2NsqhcIz0hblknmeOZV_hit-liEXuNZy4-7Ee_Tn2bLusGOIGVnniuVFSkZIGtvoV8KJWuj7mXefmTln_rPyI04RQy9m1BW3V3h2TmEKgpK4c01p5c2wx6CCtSV0SLCcKMA2p1-fYMkOgQ0J4YrZ4nrMcRHh6P8rsb9NSnTlwmOrzoBYad7QXhl780NIh7h_MAp0aLcQNSAHtCG6CdZywoNst5bEc-rtd2MY2aL3zddrh_zPxQ-6TE05rqWQQ8fasbTj808khgybywwj4GC5AA4vaPSksEsqeuk414hmBizZUNlLEL0W4k1LzovlFuLFZwQrVBCTh1J_gKEQ0rpCMjag7gY) P>

【问题讨论】:

如果您只将令牌存储在本地存储中,那么您需要以某种方式将其与请求(标头、cookie、查询参数等)一起发送。如果你已经发送了一个请求......好吧,我们不会猜测你是怎么做的;) 谢谢雅库布。但我需要将令牌从后端发送到前端(我知道这很奇怪)。那么我如何读取自动登录用户的 jwt 令牌? 为什么奇怪?我的意思是,创建令牌并将其传递给前端的服务器不是吗? 【参考方案1】:

好的,我找到了: $this->get('lexik_jwt_authentication.jwt_manager')->create($this->getUser());

【讨论】:

以上是关于Symfony2 中的 JWT 令牌的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 测试中的伪造身份验证 - 控制器上的 get('security.context')->getToken() 返回的令牌与 TestCase 中设置的令牌不同

CSRF 和 RESTful API (symfony2, php)

Jwt 令牌解码 - Symfony 4

Symfony 2中的kernel.request事件中的身份验证令牌始终为空?

如何使用纯令牌(令牌作为字符串)从控制器 $jwtManager->decode($jwt) 解析 jwt 令牌

从 Symfony3 中经过身份验证的用户 (HWIOAuth) 获取 Angular2 中的 JWT 令牌