我尝试通过Symfony保护一些文件。假设我通过以下URL访问它们:https://test.com/file/?token=AAAABBBBCCCC
我已经通过LexikJWTAuthenticationBundle
实现了授权。我登录;得到一个访问令牌--这工作得很好。所以我使用我的登录访问令牌来输入URL。
但是登录令牌的寿命太长了。因此,我考虑创建一个短生命周期令牌(< 2秒),只访问文件一次。只要我刷新页面,对文件的访问就应该消失了。
在symfony页面上,我发现了如何创建令牌:$JWTManager->create($user)
(https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/7-manual-token-creation.html)
但是我无法配置此令牌的寿命。这通常在lexik_jwt_authentication.yaml
中配置,但我不想更改登录令牌的寿命:/
使用Symfony 5
有什么想法吗
1条答案
按热度按时间6jjcrrmo1#
我现在解决了。首先创建一个令牌并添加任何数据以标识其用例。例如,我使用一个scoped:
然后使用EventListener根据作用域设置到期日期:
然后,在只允许特定范围令牌的控制器中: