配置Cookie使用情况

注意

AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

AEM提供了一项服务,可让您配置和控制如何在您的网页中使用cookie:

  • 可配置的服务器端服务维护可使用的Cookie列表。
  • Javascript API允许您的Javascript代码验证是否可以使用Cookie。

使用此功能可确保您的页面符合用户对Cookie使用情况的同意。

配置允许的Cookie

配置AdobeGranite选择退出服务以指定如何在您的网页上使用Cookie。 下表介绍了可配置的属性。

要配置服务,您可以使用 Web控制台将OSGi配置添加到存储库. 下表介绍了任一方法所需的属性。 对于OSGi配置,服务PID为 com.adobe.granite.optout.

属性名称(Web 控制台) OSGi 属性名称 描述
禁用Cookie optout.cookies Cookie的名称,当用户设备上存在时,该名称指示用户不同意使用Cookie。
选择禁用HTTP标头 optout.headers 表示用户未同意使用Cookie的HTTP标头的名称(如果存在)。
白名单Cookie optout.whitelist.cookies 对网站运行至关重要,且未经用户同意即可使用的Cookie列表。

使用客户端Javascript调用AdobeGranite选择退出服务,以验证您是否可以使用Cookie。 使用Granite.OptOutUtil javascript对象执行以下任何任务:

  • 获取表示用户不同意将Cookie用于跟踪的Cookie名称列表。
  • 获取可使用的Cookie列表。
  • 确定Web浏览器是否包含指示用户不同意使用Cookie进行跟踪的Cookie。
  • 确定是否可以使用特定Cookie。

granite.utils 客户端库文件夹 提供Granite.OptOutUtil对象。 将以下代码添加到页眉JSP,以包含指向Javascript库的链接:

<ui:includeClientLib categories="granite.utils" />

例如,以下javascript函数确定是否允许在写入COOKIE_NAME Cookie之前使用该Cookie:

function writeCookie(value){
   if (!Granite.OptOutUtil.maySetCookie("COOKIE_NAME"))
      return;
   if (value) {
      value = encodeURIComponent(value);
      document.cookie = "COOKIE_NAME=" + value;
   }
}

Granite.OptOutUtil Javascript对象

Granite.OptOutUtil允许您确定是否允许使用Cookie。

getCookieNames()函数

返回Cookie的名称(如果存在),表示用户未同意使用Cookie。

参数

无.

返回结果

Cookie名称数组。

getWhitelistCookieNames()函数

返回可在用户同意的情况下使用的Cookie的名称。

参数

无.

返回结果

Cookie名称数组。

isOptedOut()函数

确定用户的浏览器是否包含任何指示尚未同意使用Cookie的Cookie。

参数

无.

返回结果

布尔值 true 如果发现表示未同意的Cookie,则 false 如果没有cookie表示不同意。

maySetCookie(cookieName)函数

确定能否在用户的浏览器上使用特定的Cookie。 此函数等同于使用 isOptedOut 函数,同时确定给定Cookie是否包含在 getWhitelistCookieNames 函数返回。

参数

  • cookieName:字符串。 Cookie的名称。

返回结果

布尔值 true if cookieName 值,或 false if cookieName 无法使用。

在此页面上