gpt4 book ai didi

authentication - Symfony 3.4 自定义身份验证监听器

转载 作者:行者123 更新时间:2023-12-04 17:46:59 25 4
gpt4 key购买 nike

我在 Twig 中手动实现了一个登录表单,我使用的是 Symfony 3.4 提供的默认身份验证(基于用户名和密码)。用户存储在数据库中,因此我有一个扩展 AdvancedUserInterface 的实体。我既不使用 FOSUserBundle 也不使用表单生成器。只是一个简单的表格。它确实有效。

问题是我想在登录过程中集成 Google reCAPTCHA。我知道如何检查验证码是否有效并实现了自定义 AuthenticationListener(我们称之为 MyAuthenticationListener)。

我知道 Symfony 使用 UsernamePasswordFormAuthenticationListener 作为它的默认监听器。问题是我找不到一种方法来将使用过的监听器更改为我已经实现的监听器。

似乎在 Symfony2 中它就像在 config.yml 中添加以下行一样简单:

parameters:
security.authentication.listener.form.class:
MyBundle\EventListener\MyAuthenticationListener

但是,我找不到 Symfony3 的方法。有什么建议么?我还试图为 Symfony3 找到一个特定的包,但实际上我找不到任何与 Symfony Security 正确集成的东西,允许我在登录表单中使用 recaptcha。

谢谢

最佳答案

您的问题可能会在这里得到解答:

https://stackoverflow.com/a/50800993/7408561

该解决方案基于由 SecurityEvents::INTERACTIVE_LOGIN 触发的自定义监听器。该事件在验证凭据之后但在重定向到 security.yml 中定义的 default_target_path 之前触发。在此位置,您可以通过使用相应的密码调用 google recaptcha api 来验证请求参数 g-recaptcha-response

如果验证失败,您可以抛出异常,您将被重定向到登录页面。

关于authentication - Symfony 3.4 自定义身份验证监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com