php - Symfony - 通过 ID 获取用户提供者

标签 php symfony doctrine-orm jwt

我正在使用JWTLexikBundleJWTRefreshTokenBundle 。它工作得很好,直到我想向 token 有效负载添加更多数据(准确地说是用户 ID)。 它在登录时工作正常,但在刷新 token 时不会抛出错误,因为我发现它使用不同的 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 和适当的接口(interface)就足够了吗?

最佳答案

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

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

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

关于php - Symfony - 通过 ID 获取用户提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43210664/

相关文章:

forms - 嵌入表单的持久性

php - 如何在序列化的php数组中搜索数据

php - Symfony2 datetime 存储时间戳的最佳方式?

php - 使用具有动态生成的字段的表单测试 Controller

rest - 有关使用 REST 和 Backbone 的身份验证工作流程的问题

php - 规避并发请求中的数据库错误(PHP 和 Symfony)

mysql - Symfony2/Doctrine2 从 querybuilder 对象中获取连接的实体

用于提交检查的 PHP isset 函数不起作用

php - 由于 CORS,Azure 网站上的 HTTP OPTIONS 请求失败

php - 为什么每当我刷新页面时,都会创建新的 CI session ?