以下の内容はhttps://ergofriend.hatenablog.com/entry/2025/09/06/205245より取得しました。


ChromeでSign in With Appleが連携できない?

3行で

  • あるところに、ログイン中のユーザーと Apple アカウントを連携したい Web アプリがありました。
  • OIDC Sign in With Appleの Callback URL には POST リクエストがやってくる。
  • Chrome の SameSite 属性のデフォルトであるLaxでは Set-Cookie の2分間以降は POST に乗らなくなる。

ChromeSign in With Appleが連携できない?

WebアプリケーションにSign in With Appleを実装し、既存のログインアカウントに連携しようとした際、未ログイン扱いとなり連携に失敗する不具合に遭遇しました。

詳しく調べるとこの問題は Chrome でのみ起こっており、要因はログインセッションに使う Cookie が送信されていなかったことでした。

Sign in With Appleでは、コールバック URL に POST リクエストでデータが渡ってきます。

そのときログインセッションの CookieSameSite属性を指定していなかったため、ブラウザのデフォルト設定が適用されていました。

ChromeSameSite属性のデフォルトはLaxです。Laxは基本的に POST リクエストでは Cookie を送信しませんが、例外として Cookie を設定してから2分間だけは POST でも Cookie が付与されるという仕様になっていました。

一方 SafariFirefox はデフォルトがNoneとなっており、同様の不具合は発生していませんでした。

つまり、Chrome では「ログインしてから2分間経過するとSign in With Appleが連携できなくなる」という事象が起こっていたのです。

今度は手元でログインできない?

SameSite=Noneを指定して不具合を解決したところ、今度は Chrome から手元のローカル環境にログインができなくなりました。

原因はhttp環境での動作確認を残すためにSecure属性を設定していなかったことでした。 SameSite=Noneを指定しているとき、Secure属性がないと ChromeSet-Cookieを無視してしまいログイン状態を維持できなかったのです。

幸い今回のアプリケーションには、https 環境をローカルにも用意していたので素早くSecure属性を有効にすることができました。

参考文献




以上の内容はhttps://ergofriend.hatenablog.com/entry/2025/09/06/205245より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14