Symfony - 按ID

时间:2017-04-04 14:51:54

标签: php symfony doctrine-orm jwt

我正在JWTLexikBundle使用JWTRefreshTokenBundle。它工作正常,直到我想向令牌有效负载添加更多数据(用户ID准确)。 登录时工作正常,但在刷新令牌时不会抛出错误,因为我发现它使用了不同的UserProvider并且因为不同的UserEntity(默认值为Symfony\Component\Security\Core\User\User)。现在,我的供应商配置如下

providers:
    db_user_provider:
        entity:
            class: PrototypeBundle\Entity\User
            property: username

JwtRefreshTokens的库具有自定义UserProvider的配置参数,但我不知道我是否可以获得上面声明的这个。 我认为它必须是@doctrine.orm.security.user.provider的一些实例,但它是抽象的,所以这个工作

gesdinet_jwt_refresh_token:
    firewall: main
    user_provider: '@doctrine.orm.security.user.provider'

我试图通过bin/console debug:container找到它,但在那里找不到它。无论如何获得该服务Id除了宣布它是特定的,然后在任何地方使用该声明?如果没有,如何以最恰当的方式做到这一点?使用UserRepository和properInterface就足够了吗?

1 个答案:

答案 0 :(得分:2)

'security.user.provider.concrete.'.$name,在您的情况下,security.user.provider.concrete.db_user_provider

这是在\Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::getUserProviderId方法中生成的。

我不知道你是否真的应该依赖这种行为,因为我想这可能只是一个实现细节。