当前位置: 首页 > 面试题库 >

在Symfony 2中的login_check之后如何禁用重定向

夹谷野
2023-03-14
问题内容

登录检查后,我需要禁用重定向,因为我只需要获取登录成功与否即可。提交后/ login_check url给我正确的数据,但请继续重定向到/
login(失败)。
/ login之后为空。
我正在尝试使用extjs
4设置登录表单,因此我需要通过ajax发布请求进行验证。login_check应该进行身份验证,创建用户会话并返回是成功还是失败,但是没有任何地方转发。

我的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项目中,我想使用真伪鉴别。所以我在security.yml档案里写了这个 好的,现在文档中说我需要在routing.yml中添加以下内容: 但我使用的是注释,所以我不使用路由文件。相反,我有: 如果我什么也不做,我的登录页面会出错: 如果我在控制器中添加一个响应为空的操作,则。。。没有什么 我做错了什么?

  • 我有一个maven-project,使用“test”阶段和“integration-test”阶段。在测试阶段,执行JUnit-Tests,在integration-test中执行HTMLUnit-Tests。我使用Jacoco[1]-maven-plugin来测量我的项目的JUnit测试所完成的codecoverage。在进行集成测试时,我使用maven-embedded-glassfish-p

  • 我有一个servlet过滤器类。在doFilter函数中,我希望在chain.doFilter(请求,响应)调用之后重定向到一个自定义URL。

  • 我想在查看页面2中禁用从右向左滑动。我基本上有一个viewpager2元素,在导航抽屉中有两页。我希望我的第二页仅在单击第一页中的某个元素时显示(从第一页向右向左滑动不应打开第二页),而当我在第二页时,viewpager2滑动(从左向右滑动)应像在viewpager中一样滑动。 我尝试过扩展类并覆盖触摸事件,但不幸的是它是最终类,因此我无法扩展它。 其次,我尝试使用将userinputened设置

  • 我有以下代码:- 这里我在一个链接标签中放了一个带点按钮的图像转盘。这里我面临一个问题。当我点击卡片时,它会重定向href链接以使用标签。但问题是当我点击点按钮来滑动图片时,它直接链接到href。如何禁用滑动图像的href和工作点按钮? 谢谢大家!

  • 问题内容: 想要禁用网站的后退按钮 只要该人单击浏览器的“后退”按钮,它就不能进入他之前访问的页面。 问题答案: 该脚本将覆盖尝试以当前页面的状态来回导航。 更新: 一些用户报告说,使用document.URL而不是可以取得更好的成功document.title: