HWIOauthBundle中的自定义UserChecker

时间:2018-03-20 20:15:15

标签: symfony fosuserbundle symfony4 hwioauthbundle

我遇到了FOSUserBundle和HWIOauthBundle的问题。我使用自定义CustomChecker来检查用户是否被禁止(数据库中的自定义表,因为我需要禁止历史记录)。当我使用Facebook登录时,我的'MySqlConnector/Net'未被使用。当我使用登录名和密码作为身份验证时,它确实有效。

GitHub问题:https://github.com/hwi/HWIOAuthBundle/issues/1358

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

来自docs

  

服务与发展构造

     

如果要修改其他捆绑包的服务定义,可以   使用编译器传递来更改服务的类或进行修改   方法调用。在下面的示例中,实现类为   original-service-id已更改为App\YourService

// src/Kernel.php
namespace App;

// ...
+ use App\Service\YourService;
+ use Symfony\Component\DependencyInjection\ContainerBuilder;
+ use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;

class Kernel extends BaseKernel implements CompilerPassInterface
{
+     public function process(ContainerBuilder $container)
+     {
+         $definition = $container->findDefinition('original-service-id');
+         $definition->setClass(YourService::class);
+     }
}

答案 1 :(得分:0)

我确认,@ Domagoj的解决方案适用于Symfony 3.4。

# app/config/services.yml
services:
...
    security.user_checker:
        class: AppBundle\Service\YourUserChecker

使用此代码,您的UserChecker会覆盖hwi.user_checker。

谢谢。