Open5

SafariのCookieやLocalStorageについて調べる

ZainZain

SafariのCookieやLocalStorageだけ他のブラウザに比べて扱いが特殊なため調べる、これを前提に置いた実装をする必要がありそう。

ZainZain

Safari Cookieについて

クライアントとサーバでFirst Party Cookieと判断されるかどうかで有効期限が変わる。

  • First Party Cookieと判定されるとset-cookieで設定された有効期限。
  • Thrid Party Cookieと判定されると最長7日間。

Official参考リンク

Cookie Status on safari

ITP

Intelligent Tracking Prevention

定義: ユーザーが実際に訪れているウェブサイトによって直接設定されるクッキーです。例えば、ユーザーがexample.comにアクセスした場合、example.comによって設定されるクッキーはファーストパーティクッキーになります。
用途: これらは主にユーザーの設定、ログイン状態の維持、サイト内のユーザビリティ改善などに利用されます。
プライバシー: ユーザーが直接関与しているサイトに限定されるため、サードパーティクッキーよりもプライバシーの観点からは受け入れられやすい傾向にあります。

定義: ユーザーが訪れているウェブサイト以外の第三者によって設定されるクッキーです。これは、広告ネットワークや社会的なウィジェットなど、外部のサービスがウェブページに組み込まれている場合に設定されます。
用途: 広告のトラッキングやユーザーの興味・関心に基づくコンテンツの提供など、主にマーケティング目的で使用されます。
プライバシー: ユーザーが直接訪れていないサイトからのクッキーであるため、プライバシー侵害の懸念が高く、多くのブラウザや規制で制限される傾向にあります。

ZainZain

Safari LocalStorageについて

Intelligent Tracking Prevention 2.3 にて

ユーザーが website.example 上の Web ページを操作せずに Safari を 7 日間使用すると、website.example の Cookie 以外の Web サイト データがすべて削除されます。

つまりはユーザが7日間、上で記載したFirst Party Cookieと判定されたcookie以外は削除されるって感じかな。LocalStorageのデータも消えるので結構storeにいれるデータは気をつけたほうが良さそう。

ZainZain

1番簡単な実装例を出すと、VercelにNextjsアプリをデプロイしてNextjsのAPI Routeで認証を実装する。NextAuthがCookieを利用した認証をサポートしているので、NextAuth利用すると実装コストさげれる。NextAuthを使わない場合はNextjsのAPI RouteでBFFするのが良さそう。

他に簡単なものはないのか、結構調査する必要がありそう。IDaaSとかはどうしてるんだろう。