配置Cookie使用情况

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。

参数

无.

返回结果

如果找到指示未同意的Cookie,则为true布尔值;如果没有Cookie指示未同意,则为false值。

maySetCookie(cookieName)函数

确定能否在用户的浏览器上使用特定的Cookie。 此函数等同于使用isOptedOut函数并结合确定给定Cookie是否包含在getWhitelistCookieNames函数返回的列表中。

参数

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

返回结果

如果可以使用cookieName,则为true布尔值;如果不能使用cookieName,则为false值。

在此页面上