【发布时间】:2014-05-01 18:46:44
【问题描述】:
我正在关注tutorial(如何使用 API 密钥验证用户)在我的应用程序中实现 api 密钥。
我正在使用基于此tutorial(如何从数据库加载安全用户)创建的用户存储库类作为预身份验证过程中所需的用户提供程序,因为该类已经具有方法在我正在关注的教程中描述为用户提供者的需要,即loadUserByUsername()、refreshUser() 和supportsClass()。
Symfony 调用我的apikey_authenticator 服务,它需要一个用户提供者作为参数。因此,我配置了另一个名为 userprovider 的服务,这是我的用户存储库类,如下所示:
services:
apikey_authenticator:
class: MyBundle\Security\ApiKeyAuthenticator
arguments: ["@userprovider"]
userprovider:
class: MyBundle\Entity\UserRepository
但我的用户存储库类依赖于实体管理器,我不知道如何注入。我的学说的配置是symfony自带的默认配置:
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
我该如何解决这个问题?在这种情况下,使用用户存储库类作为用户提供者是否是个好主意?
【问题讨论】:
标签: php symfony dependency-injection doctrine-orm api-key