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

如何基于React应用实现第三方Cookie跨站用户数据追踪?

第三方Cookie实现跨站数据收集方案

核心逻辑

用户将你的React服务提供的资源(脚本/图片)嵌入他们的网站后,你的服务域名即可在用户网站的上下文环境中设置第三方Cookie,后续通过该Cookie标识用户,收集并传输数据到你的数据库。

具体实现步骤

1. 配置后端Cookie响应头

React是前端框架,需配合后端服务完成Cookie设置。以Node.js + Express为例,当用户网站请求你的资源时,后端返回带Set-Cookie的响应:

// Express后端路由示例
const express = require('express');
const path = require('path');
const app = express();

app.get('/embed-script', (req, res) => {
  // 设置第三方Cookie:SameSite=None必须配合Secure,仅HTTPS环境生效
  res.cookie('user_tracker', 'unique_user_id', {
    maxAge: 30 * 24 * 60 * 60 * 1000, // 有效期30天
    secure: true, // 仅HTTPS传输
    sameSite: 'None', // 允许跨站发送
    httpOnly: false, // 如需前端脚本读取则设为false,否则设为true更安全
    domain: '.your-react-service.com' // 你的服务根域名,确保子域名可访问
  });
  // 返回嵌入脚本文件
  res.sendFile(path.join(__dirname, 'embed.js'));
});

app.listen(443);

2. 提供用户嵌入的脚本

编写数据收集脚本embed.js,用户只需将以下代码添加到其网站的<head>中:

<script src="https://your-react-service.com/embed-script"></script>

脚本内容示例(收集页面数据并发送到你的API):

// embed.js
document.addEventListener('DOMContentLoaded', () => {
  // 收集用户网站的目标数据
  const pageData = {
    url: window.location.href,
    title: document.title,
    timestamp: Date.now()
  };
  // 发送数据到你的API,浏览器会自动携带第三方Cookie
  fetch('https://your-react-service.com/api/save-data', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(pageData),
    credentials: 'include' // 确保跨站请求携带Cookie
  });
});

3. 后端接收并存储数据

你的API接口接收数据,通过Cookie中的标识关联用户,存入数据库:

app.use(express.json());

app.post('/api/save-data', (req, res) => {
  const userId = req.cookies.user_tracker;
  const pageData = req.body;
  // 将用户标识与数据存入数据库(伪代码示例)
  db.collection('user_data').insertOne({ userId, ...pageData });
  res.status(200).send('Data saved');
});

关键注意事项

  • 浏览器隐私限制:Chrome、Safari等主流浏览器对第三方Cookie有严格拦截规则(如Safari的ITP、Chrome的隐私沙盒),可能导致Cookie无法设置或读取。可引导用户开启跨站跟踪权限,或主动请求存储访问权限:
    // 主动请求存储访问权限
    if (document.hasStorageAccess) {
      document.requestStorageAccess().then(() => {
        // 权限获取成功后执行数据收集逻辑
      });
    }
    
  • HTTPS要求:SameSite=None必须搭配Secure属性,你的服务必须部署在HTTPS环境下,否则Cookie无法生效。
  • 合规性:跨站数据收集必须符合GDPR、CCPA等隐私法规,需明确告知用户并获得同意。

内容的提问来源于stack exchange,提问作者042_Shoyeb akter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:26:12