我有一个示例,尝试使用Symfony2和FOSUserBundle创建AJAX登录。我设置我自己success_handler和failure_handler在form_login我的security.yml文件。

这是课程:

class AjaxAuthenticationListener implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface

{

/**

* This is called when an interactive authentication attempt succeeds. This

* is called by authentication listeners inheriting from

* AbstractAuthenticationListener.

*

* @see \Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener

* @param Request $request

* @param TokenInterface $token

* @return Response the response to return

*/

public function onAuthenticationSuccess(Request $request, TokenInterface $token)

{

if ($request->isXmlHttpRequest()) {

$result = array('success' => true);

$response = new Response(json_encode($result));

$response->headers->set('Content-Type', 'application/json');

return $response;

}

}

/**

* This is called when an interactive authentication attempt fails. This is

* called by authentication listeners inheriting from

* AbstractAuthenticationListener.

*

* @param Request $request

* @param AuthenticationException $exception

* @return Response the response to return

*/

public function onAuthenticationFailure(Request $request, AuthenticationException $exception)

{

if ($request->isXmlHttpRequest()) {

$result = array('success' => false, 'message' => $exception->getMessage());

$response = new Response(json_encode($result));

$response->headers->set('Content-Type', 'application/json');

return $response;

}

}

}

这对于处理成功和失败的AJAX登录尝试都非常有用。但是,启用后-我无法通过标准表单POST方法(非AJAX)登录。我收到以下错误:

Catchable Fatal Error: Argument 1 passed to

Symfony\Component\HttpKernel\Event\GetResponseEvent::setResponse() must be an

instance of Symfony\Component\HttpFoundation\Response, null given

我希望自己的重写onAuthenticationSuccess和onAuthenticationFailure重写仅对XmlHttpRequests(AJAX请求)执行,如果没有,则将执行交还给原始处理程序。

有没有办法做到这一点?

TL; DR我希望AJAX请求登录尝试返回JSON响应以表示成功和失败,但我希望它不影响通过POST表单进行的标准登录。

symfony ajax,Symfony2 AJAX登录相关推荐

  1. PHP+jQuery+Ajax实现用户登录与退出

    用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录,登录成功后只刷新页面局部,从而提升了用户体验度.本文将使用PHP和jQuery来实现登录和退出功能. 查看演示 下载 ...

  2. 怎么样给ajax的ulr加密,研究Ajax请求受登录保护的URL的优雅解决

    在此先记下思路. 场景:登录页面login,在一个登录后才能访问的页面dashboard,dashboard上有一个按钮button,button绑定了一个单击事件,触发后发出一个ajax请求,aja ...

  3. mvc3中正确处理ajax访问需要登录的页面

    mvc3中有Ajax.ActionLink和Ajax.BeginForm两个方法用来生成ajax的连接和ajax的表单提交. 但是当要访问的连接是一个需要登录的页面,显示时就不太友好了 我简单模拟了一 ...

  4. 用php mui ajax注册登录页面,ajax实现简单登录页面

    本文实例为大家分享了ajax实现简单登录页面的具体代码,供大家参考,具体内容如下 一.什么是ajax Ajax是一种无需重新加载整个网页,能够更新部分网页的技术. 二.ajax的工作原理 Ajax工作 ...

  5. php在登录页面使用ajax,使用Ajax安全的登录界面

    这次给大家带来使用Ajax安全的登录界面,使用Ajax登录界面的注意事项有哪些,下面就是实战案例,一起来看一下. 登录界面是信息系统提供的必备的功能,是提供给用户提供维护信息的接口.接下来,我来带领大 ...

  6. 基于Spring Security的AJAX请求需要登录的解决方案

    基于Spring Security的AJAX请求需要登录的解决方案 参考文章: (1)基于Spring Security的AJAX请求需要登录的解决方案 (2)https://www.cnblogs. ...

  7. 【PHP学习】—利用ajax原理实现登录功能(八)

    [PHP学习]-利用ajax原理实现登录功能(八) 通过学习上篇文章我们发现这种方法存在了一定的缺陷,利用页面跳转,HTML页面访问服务器,要等待服务器响应,账号密码输入错误后,还要回退页面重新输入账 ...

  8. php mysql ajax登录界面_PHP+jQuery+Ajax实现用户登录与退出

    本文使用Ajax无刷新登录和退出,从而提升了用户体验. 若用户为登录状态,则显示用户相关登录信息,否则显示登录表单. 用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录 ...

  9. html+ajax登陆,jQuery+Ajax模拟用户登录功能的实现代码

    摘要 腾兴网为您分享:jQuery+Ajax模拟用户登录功能的实现代码,钻石星球,篆刻字典,中信金通,易码平台等软件知识,以及电视猫app,河南app,红豆婚恋,xvideos本,电子电路,qq约会, ...

最新文章

  1. 怎么重置mysql密码是多少钱_mysql怎么重置密码
  2. hssfcolor 不建议使用_POI导出Excel经典实现
  3. 雅客EXCEL(1)--快速录入、统计、日期
  4. 结婚戒指为什么戴在无名指上的原因
  5. java 抽象类与接口理解
  6. spring boot 单元测试_spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
  7. java 运行异常处理_Java编程异常处理和I/O流
  8. 华强北耳机版本太多,不知道如何选购?
  9. 抖音春晚红包百亿互动量级背后,火山引擎浮出水面
  10. 精通~Scrum为什么会转型困难
  11. Zabbix Server安装部署
  12. 【回归预测】基于matlab麻雀搜索算法优化CNN回归预测【含Matlab源码 282期】
  13. 【解决方法】VMware Horizo​​n View创建虚拟桌面失败,报错:View Composer Agent初始化错误(16):无法激活软件许可证
  14. 冒泡 c语言,C语言:冒泡排序
  15. ac.find_template 踩坑,寻找相似图片,安卓自动化代码
  16. Typecho 个人支付宝微信收款插件 TePay
  17. 计算机取证科普性基础
  18. Python图像处理之透视变换
  19. 查看OracleVMVirtualBox虚拟机的ip地址
  20. 怎么用蓝光u宝装linux系统,蓝光U宝U盘启动盘制作工具V3.3(完整版)使用教程

热门文章

  1. 【效能工具】记录常用效能工具
  2. 好压压缩文件目录乱码的解决
  3. 鸿蒙宴历史背景,鸿门宴的历史背景介绍
  4. Android 高质量开发之崩溃优化,kotlinnativerust跨端
  5. 硬件转行之路——自学Web前端开发(一)
  6. 使用 Railway 和 Supabase 零成本搭建 n8n 自动化平台
  7. 苏宁易购的api接口展示
  8. html5移动页面自适应手机屏幕大小,页面完美自适应移动端屏幕的方法
  9. 宝塔解压文件,通过SSH命令解压缩.tar.gz、.gz、.zip文件的方法
  10. coding同步更新服务器文件,git 同步本地项目到coding 上