配置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 HTTP头的名称,当存在时,它指示用户未同意使用cookie。
白列表Cookie optout.whitelist.cookies 一列表对网站功能至关重要的cookie,未经用户同意即可使用。

使用客户端javascript调用AdobeGranite退出服务,以验证是否可以使用cookie。 使用Granite.OptOutUtil javascript对象执行下列任一任务:

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

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

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

例如,以下javascript函数确定在写入COOKIE_NAME 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

在此页面上