web-dev-qa-db-ja.com

JavaScriptでクロスサブドメインCookieを設定する

these 関数にドメインサポートを追加するにはどうすればよいですか? .example.comがドメインとして宣言されているので、example.comのすべてのサブドメインでCookieを読み取ることができます。現在の形式ではドメインが設定されていないため、www.example.comからのみ読み取ることができます

27
newnomad

ドメイン間でCookieを共有する方法に関するリンクは次のとおりです。

https://www.thoughtco.com/javascript-by-example-2037272

次のようにcookie文字列のドメイン属性を設定します。

document.cookie = "myValue=5;path=/;domain=example.com";

これで、このCookieは、login.example.comのようなexample.comのすべてのサブドメインにアクセスできるはずです。

49
Tom Gullen

私の場合、.comサブドメイン全体で機能するCookieを設定する必要がありました。

function setCrossSubdomainCookie(name, value, days) {
  const assign = name + "=" + escape(value) + ";";
  const d = new Date();
  d.setTime(d.getTime() + (days*24*60*60*1000));
  const expires = "expires="+ d.toUTCString() + ";";
  const path = "path=/;";
  const domain = "domain=" + (document.domain.match(/[^\.]*\.[^.]*$/)[0]) + ";";
  document.cookie = assign + expires + path + domain;
}

これは.co.ukなどでは機能しない可能性がありますが、原則は使用できます

0
stujo