Symfony“json_login”安全参数不初始化控制器

时间:2017-10-03 13:45:43

标签: php json ajax symfony login

我按照Symfony文档中的“如何构建JSON身份验证端点”教程,但每当我在登录处理程序(空控制器)上进行AJAX调用时,我都会收到500错误

  

“控制器必须返回一个响应(给定空值)。你有没有忘记   在控制器的某处添加一个return语句?“

我是否正确地认为,因为我在我的安全配置中将/ loginhandler指定为check_path,Symfony不应该运行我提供的空控制器而是覆盖它?当我尝试向控制器添加一个虚拟JSON响应时,它返回就好了。

我做错了什么?我尝试了 / loginhandler loginhandler 作为check_path参数。

这是我的security.yml:

    firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        anonymous: ~
        json_login:
            check_path: /loginhandler

我的空控制器是一个空控制器:

 /**
 * @Route("/loginhandler", name="loginhandler")
 */
 public function jsonLoginAction(Request $request)
 {
 }

最后,这是我的AJAX电话:

fetch('{{ path('loginhandler') }}', {
    method: 'post',
    body: JSON.stringify({
        username: username,
        password: password
    }),
    credentials: 'same-origin'
}).then(function (response) {
    submitButton.html(submitButton.attr('data-text')).removeAttr('disabled');
    $("#loginForm").removeClass('attempted-submit');
    return response.json();
}).then(function (response) {
    console.log(response);
});

我正在运行Symfony 3.3.9和PHP 7.1.6。

1 个答案:

答案 0 :(得分:1)

他们的文档被破坏了,他们现在忽略了一年多的错误..你需要一个登录和成功的处理程序......尽管不记得如何设置它