[Alpha]{class="badge informative"}

getIdentity (服务器SDK)

本页介绍了Server SDK getIdentity方法。 对于Web SDK,请参阅getIdentity.

getIdentity方法会返回访客的Experience Cloud ID (ECID),而不发送事件数据。 调用sendEvent时,Edge Network会自动建立访客的身份,因此仅在服务器需要ECID本身时才使用getIdentity。 例如,使用它将ECID与您自己的记录一起存储,或将其传递给另一个系统。

对访客的forRequest句柄调用getIdentity:

const visitor = alloy.forRequest({ request: req, cookie: visitorCookies });

const result = await visitor.getIdentity({
  namespaces: ["ECID"]
});

console.log(result.identity.ECID);

SDK使用以下流程返回ECID:

  1. SDK会检查同意是否允许其继续。 如果访客已选择退出,getIdentity将解析为空对象。
  2. 如果访客的身份Cookie可通过您传递给forRequest的Cookie服务使用,则SDK会从其读取ECID,而不联系Adobe。
  3. 否则,SDK会从Edge Network请求访客身份,通过Cookie服务写入身份Cookie,然后返回ECID。

对Edge Network的请求未经身份验证。 确保您的数据流接受未经身份验证的请求。 请参阅设置数据流访问类型。

如果您没有将Cookie服务传递给forRequest,则SDK无法找到现有标识,因此每个forRequest句柄都会获得一个新的ECID。 查看实例和请求。

选项 options

getIdentity方法接受具有以下属性的可选对象:

  • namespaces:要返回的标识命名空间数组。 支持的值为"ECID"和"CORE"。 默认值为 ["ECID"]。 仅当thirdPartyCookiesEnabled为true时,您才可以请求"CORE"命名空间。 否则,getIdentity将拒绝。
  • edgeConfigOverrides:此请求的数据流配置覆盖对象。

结果对象 result

getIdentity方法返回承诺。 解析时,结果对象包含以下属性:

  • identity.ECID:包含访客ECID的字符串。
  • identity.CORE:包含访客核心ID的字符串(如果您请求CORE命名空间)。
  • edge.regionId:一个整数,标识处理请求的Edge Network区域。 此属性仅在SDK联系Edge Network以获取身份时存在。
const { identity } = await visitor.getIdentity();
console.log(identity.ECID);
recommendation-more-help
experience-platform-help-collection