Php 如何在登录\签入Symfony 2后禁用重定向
我需要在登录检查后禁用重定向,因为我只需要获得登录是否成功。提交/login\u检查url后,给我正确的数据,但继续重定向到/login(失败)。Php 如何在登录\签入Symfony 2后禁用重定向,php,symfony,Php,Symfony,我需要在登录检查后禁用重定向,因为我只需要获得登录是否成功。提交/login\u检查url后,给我正确的数据,但继续重定向到/login(失败)。 /之后登录为空。 我正在尝试使用ExtJS4设置登录表单,因此需要通过ajax post请求进行验证。 登录检查应进行身份验证,创建用户会话,并返回是否成功,但不在任何地方转发 我的login.html.twig看起来像: {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} { success
/之后登录为空。
我正在尝试使用ExtJS4设置登录表单,因此需要通过ajax post请求进行验证。 登录检查应进行身份验证,创建用户会话,并返回是否成功,但不在任何地方转发 我的login.html.twig看起来像:
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{ success:true }
{% else %}
{ success: false }
{% endif %}
在security.yml中:
firewalls:
main:
form_login:
provider: fos_userbundle
failure_path: null
failure_forward: false
创建身份验证处理程序:
namespace YourVendor\UserBundle\Handler;
// "use" statements here
class AuthenticationHandler
implements AuthenticationSuccessHandlerInterface,
AuthenticationFailureHandlerInterface
{
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
if ($request->isXmlHttpRequest()) {
$result = array('success' => true);
return new Response(json_encode($result));
} else {
// Handle non XmlHttp request here
}
}
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
if ($request->isXmlHttpRequest()) {
$result = array('success' => false);
return new Response(json_encode($result));
} else {
// Handle non XmlHttp request here
}
}
}
将处理程序注册为服务:
services:
authentication_handler:
class: YourVendor\UserBundle\Handler\AuthenticationHandler
在防火墙中注册服务:
firewalls:
main:
form_login:
success_handler: authentication_handler
failure_handler: authentication_handler
这是一个粗略的例子,可以让你大致了解情况——你需要自己弄清楚细节。如果您陷入困境,需要进一步澄清,请在评论中提出您的问题,我将尝试详细说明示例。正常的symfony流程是在您未登录时将您重定向到登录页面,这对人类来说很好。但您似乎正在寻找一种编程解决方案 您是否尝试在表单中设置_target_path,以声明“下一页”应该是什么?Symfony总是将您转发到某个地方,但您可以将该位置设置为任意位置 我发现这两个页面对于描述登录表单的内部工作非常有用:
- (搜索_目标_路径)