設定Cookie使用情形

AEM提供一項服務,可讓您設定並控制Cookie與網頁的使用方式:

  • 可配置的伺服器端服務會維護可使用的Cookie清單。
  • Javascript API可讓您的Javascript程式碼驗證Cookie是否可使用。

使用此功能可確保您的頁面符合使用者對Cookie使用的同意。

設定允許的Cookie

設定Adobe Granite選擇退出服務,以指定Cookie在您的網頁上的使用方式。 下表說明了可以配置的屬性。

要配置服務,可以使用 Web控制台 , 或將OSGi配置添加到儲存庫。 下表說明了這兩種方法所需的屬性。 對於OSGi配置,服務PID為 com.adobe.granite.optout

屬性名稱(Web控制台) OSGi屬性名稱 說明
退出Cookie optout.cookies 當Cookie出現在使用者裝置上時,表示使用者未同意使用Cookie的Cookie名稱。
選擇退出HTTP標題 optout.headers HTTP標題的名稱,指出使用者尚未同意使用Cookie。
白名單Cookie optout.whitelist.cookies 對網站運作至關重要且未經使用者同意即可使用的Cookie清單。

使用用戶端javascript呼叫Adobe Granite退出服務,以確認您可以使用Cookie。 使用Granite.OptOutUtil javascript物件來執行下列任何工作:

  • 取得Cookie名稱清單,指出該使用者不同意使用Cookie進行追蹤。
  • 取得可使用的Cookie清單。
  • 判斷網頁瀏覽器是否包含Cookie,指出使用者不同意使用Cookie進行追蹤。
  • 判斷是否可使用特定Cookie。

granite.utils用戶端 程式庫資料夾 ,提供Granite.OptOutUtil物件。 將下列程式碼新增至您的頁面標題JSP,以包含javascript程式庫的連結:

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

例如,下列javascript函式會決定是否允許在寫入COOKIE_NAME Cookie之前使用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。

參數

無.

退貨

Cookie名稱的陣列。

getWhitelistCookieNames()函式

傳回不論使用者同意與否,都可使用的Cookie名稱。

參數

無.

退貨

Cookie名稱的陣列。

isOptedOut()函式

判斷使用者的瀏覽器是否包含任何表示未同意使用Cookie的Cookie。

參數

無.

退貨

布爾值:如果 true 發現Cookie表示未同意,則為此值;若未發現Cookie表示 false 未同意,則為此值。

maySetCookie(cookieName)函式

判斷特定Cookie是否可用於使用者的瀏覽器。 此函式等同於搭配使用 isOptedOut 函式,以判斷函式傳回的清單中是否包含指定 getWhitelistCookieNames 的Cookie。

參數

  • cookieName: 字串。 Cookie的名稱。

退貨

布爾值if truecookieName 以使用,值 false if不 cookieName 能使用。

本頁內容