cookieを使用した際にSupabaseから正しいレスポンスが来ない件について

現在、Supabaseと連携してbubbleでサービスを構築しています。
API Connectorで、Sign in Log inまではできました。
Log in後、ユーザーの識別子を別ページに引き継ぐところでつまづいてます。

URLパラメーターでDataSendすれば問題ないのですが、セキュリティとして問題なので、CookieにUidなどを保存して読み込もうと考え、cookieのPluginを導入しました。

こちらのCookieを使用すると以下の通り挙動がおかしくなるので、原因等わかりそうな方いらっしゃったら教えていただけますと幸いです。

以下キャプチャで実施しているのは以下の内容です。

  • ログインのAPIレスポンスのtokenでgetユーザー(STEP2)
  • cookieにAPIレスポンスのtokenを保存(STEP4)
  • cookieに保存したtokenでgetユーザー(STEP6)
  • 以下をCustomStateに保存(本来ならここの値が同一になる)
  1. uid:STEP2でgetしたuid
  2. uid_cookie:STEP6でgetしたuid
  3. tok_cookie:STEP4で保存したcookie(token)の値
  4. tok:STEP1のレスポンスのtokenの値




実施結果は以下の通りです。



tokenの値が長いので切ってますが、CustomStateの値を見ると以下の現象がおきます。
tok=cookie_tok
uid ≠ cookie_uid

cookieに現在のtokenを正しく保存するところまでいき、以下の通り上記STEP6のgetユーザーのtokenも正しい値が入っていることを確認できてます。

ちなみに、cookie_uidに入る値は、API Connector(ここではsupabase get_user)で「initialize call」した値が返ってきます。
「reinitialize call」をすると、uid_cookieの値は変わりますが、次回「reinitialize call」をするまで値が変わりません。

よろしくお願いいたします。

Pluginの中身は見ていないですが、Cookieの書き込み処理が非同期に行われているのではないかと思われます。
そのため、書き込みが完了していない段階で次の読み込みが開始されてしまい、前回値を参照しているのでは?

ログインするページでは、ログインしたときのuid情報をそのまま使用し、他のページに遷移したときのみcookieから読み出すようにしてはどうでしょうか?

「いいね!」 1

@yukikun

ご返信ありがとうございます。
試してみましたが、以下の通り401エラーでした。



また、こちらのページでcookieAに保存されている値をコピーしてきて、直接「supabase-get_user」のAPIを「reinitialize call」をすると正しいレスポンスが返ってきます。

また、プラグインは、「Browser Cookies」を使用してますが、その他「Local Storage & Cookies」でローカルストレージに保存してみましたが上記同様の結果になります。

恐れ入りますが何かしらわかりそうなことがありましたらご返信いただけますと幸いです。