我正在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就足够了吗?
答案 0 :(得分:2)
'security.user.provider.concrete.'.$name
,在您的情况下,security.user.provider.concrete.db_user_provider
。
这是在\Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::getUserProviderId
方法中生成的。
我不知道你是否真的应该依赖这种行为,因为我想这可能只是一个实现细节。