You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用WordPress Login Designer的Google Recaptcha v3后,自定义$_SESSION刷新丢失

问题分析与解决思路

核心问题是Login Designer插件的Google Recaptcha v3模块,在验证流程中干扰了自定义session的生命周期,导致登录后session数据在重定向时丢失。以下是具体排查和修复步骤:

  • 排查session启动时机冲突
    你的自定义session必须在任何输出前启动,但Login Designer的Recaptcha可能在不同钩子时机启动了自身session,或修改了session参数。可以通过日志定位数据丢失节点:

    • 在登录验证成功、存入$_SESSION['custom_session']后添加日志:
      error_log('Pre-redirect session data: ' . print_r($_SESSION['custom_session'], true));
      
    • 在仪表盘页面的最开头添加日志:
      error_log('Dashboard session data: ' . print_r($_SESSION['custom_session'], true));
      

    对比日志,确认session数据是在重定向过程中被销毁,还是仪表盘页面未正确读取session。

  • 修复Recaptcha对session参数的干扰
    Login Designer的Recaptcha可能修改了session cookie的路径、域名或调用了session_regenerate_id(),导致自定义session无法被后续页面识别。

    • 明确指定自定义session的参数,确保和全局环境兼容:
      // 在session_start()前设置统一的cookie参数
      session_set_cookie_params([
          'lifetime' => 86400,
          'path' => '/',
          'domain' => $_SERVER['HTTP_HOST'],
          'secure' => is_ssl(),
          'httponly' => true,
          'samesite' => 'Lax',
      ]);
      // 自定义session名称,避免和其他插件冲突
      session_name('CUSTOM_PORTAL_SESSION');
      session_start();
      
    • 禁用Recaptcha在客户门户登录页的加载:如果你的门户登录页有专属slug(比如customer-login),通过钩子取消Recaptcha的相关处理:
      add_action('wp_enqueue_scripts', function() {
          if (is_page('customer-login')) {
              // 取消Login Designer的Recaptcha脚本和session逻辑
              wp_dequeue_script('login-designer-recaptcha');
              // 若有必要,移除相关钩子
              remove_action('login_form', 'login_designer_recaptcha_render');
          }
      }, 999);
      
  • 排查session销毁逻辑
    检查Login Designer的代码,看是否在Recaptcha验证完成后调用了session_destroy()或unset($_SESSION)等清理操作,这些操作会连带销毁你的自定义session数据。如果发现此类代码,可通过钩子拦截或修改插件逻辑(建议用子插件或自定义代码,避免直接修改原插件)。

  • 验证浏览器session cookie传递
    登录成功后,在浏览器开发者工具的「Application」标签下查看Cookie,确认你的CUSTOM_PORTAL_SESSION(或自定义名称)cookie存在,且路径、域名覆盖客户门户的所有页面。如果cookie未被携带,调整session_set_cookie_params()的参数,确保和当前站点的域名、路径匹配。

内容的提问来源于stack exchange,提问作者Mahidul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:03:49