Symfony2:在自定义身份验证提供程序中获取用户 IP

Symfony2: Getting user IP in custom authentication provider

我正在使用 Symfony 创建自定义身份验证提供程序和侦听器。而且我还需要对一些不成功的登录尝试实施 IP 禁令。这就是为什么我需要在验证凭据是否有效的身份验证提供程序中获取它的原因。问题是我无法向其中注入请求服务,因为我得到 "scope widening dependency injection exception"。使用 $_SERVER['REMOTE_ADDR'] 获取 IP 地址不是解决方案。还有其他方法吗?

你试过这样设置吗:

How to inject the @request into a service?

或使用请求堆栈的较新版本:

http://symfony.com/blog/new-in-symfony-2-4-the-request-stack

在您的身份验证器上实施 AuthenticationFailureHandlerInterface 这将提供一个 onAuthenticationFailure 方法,您可以在其中注入请求。 阅读更多 here