tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Cookieの取り扱い方法について

ApexでCookieを扱う方法について勉強しました。Cookieを扱うためにはCookie Classが用意されています。

Cookie Class
http://goo.gl/sBU2J


Cookieを扱った処理は次のようになります


上記の処理で次の画面が表示されます。

f:id:tyoshikawa1106:20130617234249p:plain

この処理では画面を表示する度にCookeiの値を+1して更新して画面に表示しています。Cookeiの値はログアウトしてもブラウザをクローズしても保持されます。URLパラメータに値を持たせなくても値を渡せるので便利だと思います。

Cookie使用時の注意

  • Cookieにセットした値はブラウザの機能で確認することができます。他の人に見られて困るような情報はセットしない方がいい気がします。
  • Cookieの情報はブラウザに保存されているので、別のユーザが同じPCで作業するような場合に値が使用されてしまうことがあると思います。
  • Cookeiの値をVF画面の操作時にセットしている場合、URLの直接指定で画面を開いた場合に値がセットできないケースが発生します。

Cookieの値確認手順

Google Chromeの場合ですが、次の手順でCookieの情報を確認できます。

  1. 右クリック
  2. 要素を検証
  3. Resourceを選択
  4. 画面左のCookiesを選択
  5. ドメイン名を選択


f:id:tyoshikawa1106:20130618000115p:plain

上記手順でCookieの値を確認できます。

追記 (2015-07-13)

Cookieの保存期間は以下の処理の4つ目の引数です。

Cookie cookie = new Cookie(cookieName, cookieValue, null, 60 * 60 * 24 * 30, false);
ApexPages.currentPage().setCookies(new Cookie[]{cookie});

計算式をセットしておくことも可能です。
例) 60(秒) * 60(分) * 24(時間) * 30(日)


"-1"を指定するとブラウザをクローズしたタイミングで削除されます。
"0"を指定するとクッキーが削除されます。