Symfony 2.8 - 在每个请求上重新创建身份验证令牌是正确的吗?

时间:2016-03-15 09:07:17

标签: symfony authentication

我通过x509数字证书(预认证)识别对某些路线的访问。 为此,我将security.yml定义如下:

- security:
   providers:
       x509Provider_Provider:
           id: x509Provider_Service
   firewalls:
       dev:
           pattern: ^/(_(profiler|wdt)|css|images|js)/
           security: false
       xes:
           pattern: ^/xes
           x509: 
               provider: x509Provider_Provider
               user: "SSL_CLIENT_S_DN"
   access_control:
       - { path: ^/xes, roles: ROLE_ADMIN, requires_channel: https }

我从哪里获得SSL_CLIENT_S_DN,并将其用作用户名。

在提供者

 x509Provider class implements UserProviderInterface

如果用户存在并且具有访问权限并且基于此,请咨询数据库 我创建了一个对象

**x509User class implements UserInterface, EquatableInterface**

我存储信息访问权限和其他数据。

显然它可以正常工作,在Symfony探查器中我有一个用户的角色并标记为经过身份验证。

问题是:每当我访问路由(模式:^ / XES)时,都会启动身份验证过程并访问数据库以获取角色和用户权限。

它不应该仅在第一次进行身份验证,并且在后续请求中创建会话后才会使用吗?。

我希望我已正确解释了我的问题。

问候

1 个答案:

答案 0 :(得分:0)

  

如今,通过API密钥对用户进行身份验证通常很常见   (例如,在开发Web服务时)。提供API密钥   对于每个请求,并作为查询字符串参数或通过   HTTP标头。

我认为令牌是一样的。