本页介绍了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:
- SDK会检查同意是否允许其继续。 如果访客已选择退出,
getIdentity将解析为空对象。 - 如果访客的身份Cookie可通过您传递给
forRequest的Cookie服务使用,则SDK会从其读取ECID,而不联系Adobe。 - 否则,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