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

Pantheon部署的Drupal站点Session Cookie无法在Chrome中保存

解决方案:Pantheon部署的Drupal无法在Chrome中存储Session Cookie问题

针对无头React + Pantheon + Drupal REST登录时,Chrome无法存储Session Cookie(Firefox正常)的问题,以下是具体排查和解决步骤:

1. 补充Cookie的SameSite属性

Chrome对跨域Cookie的SameSite属性有强制要求,未设置时会阻止存储,而Firefox兼容性处理更宽松。在Drupal的settings.php中添加配置,指定SameSite为None(需配合已有的Secure属性):

$settings['session.storage.options'] = [
  'cookie_samesite' => 'None',
];

2. 修正Drupal的CORS配置

确保CORS允许携带Credentials的请求,修改sites/default/services.yml:

cors.config:
  enabled: true
  allowedHeaders:
    - 'Content-Type'
    - 'X-CSRF-Token'
  allowedMethods:
    - 'GET'
    - 'POST'
    - 'OPTIONS'
  allowedOrigins:
    - 'https://你的React应用域名' # 替换为实际域名,不能用*
  exposedHeaders:
    - 'X-CSRF-Token'
  maxAge: 1000
  supportsCredentials: true # 必须开启,允许Cookie跨域传输

注意:带Credentials的CORS请求不允许allowedOrigins使用通配符*,必须指定具体的React应用域名。

3. 验证域名匹配性

你的Session Cookie domain为.oursitename.pantheonsite.io,确保React应用的域名属于该二级域下(如app.oursitename.pantheonsite.io),否则Chrome会拒绝存储跨域Cookie。若React应用是独立域名,需调整Cookie的domain配置或使用反向代理统一域名。

4. 确保HTTPS协议一致性

Cookie带有Secure属性,仅能在HTTPS环境下传输和存储。确认React应用和Pantheon上的Drupal均使用HTTPS协议,本地开发时可使用HTTPS代理(如react-scripts start --https)模拟生产环境。

5. 检查Pantheon CDN设置

Pantheon的CDN可能篡改或丢失Cookie头,需在Pantheon仪表盘中确认:

  • Session Cookie未被CDN缓存
  • CDN未移除SameSite或Secure属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:50:28