Cookieに登録
登録
public void writeCookie(String key, String value) {
Cookie c = new Cookie(key, value, null, -1, true);
ApexPages.currentPage().setCookies(new List<Cookie>{c});
}
コンストラクタの引数
-
Cookie(name, value, path, maxAge, isSecure)-
String name― Cookieの名前。 -
String value― Cookieの値。 -
String path― ブラウザがCookieを送信するURLのディレクトリ。 -
Integer maxAge― Cookieの有効期限(秒)。負の値を設定するとブラウザが閉じるまで有効。0を設定するとCookieが削除される。 -
Boolean isSecure― trueを設定するとHTTPSのみCookieにアクセスできる。
-
-
Cookie(name, value, path, maxAge, isSecure, sameSite)-
String sameSite― クロスドメイン時の動作。有効な値はNone、Lax、Strict。
-
注意
- ブラウザに保存されるCookie名はプレフィックス
apex__が追加される。
Cookieを取得
取得
public string getCookie(String key) {
Cookie c = ApexPages.currentPage().getCookies().get(key);
return c?.getValue();
}
注意
- ApexのsetCookiesメソッドによって設定されたCookieのみ取得可能。
- setCookiesメソッドによって設定されたCookieはプレフィックス
apex__が追加されるが、getCookiesメソッドはプレフィックスなしの状態で取得される。
Cookieを削除
削除
public void removeCookie(String key) {
Cookie c = new Cookie(key, '', null, 0, true);
ApexPages.currentPage().setCookies(new List<Cookie>{c});
}
参考
- 公式リファレンス
- SameSiteについて
- Salesforceプラットフォームで使用されるCookieについて