Open1

nextjs-auth0を使っていると,ServerActionsでRevalidateされちゃう

ZackZack

Nextjs-auth0を使うとServerActionsでRevalidateが走っちゃう問題完全に理解した

  • nextjs-auth0は各リクエスト(ページ,API, ServerActions全て)で,CookieをSetする
    • アクセストークンとか更新するため
    • ここでCookie触ってる
  • nextjsは,Cookieが更新されるとRevalidateするようになっている
    • ここに書いてある
    • ここでmodifiedCookieに登録されて,
    • Proxyとか通ってややこしいけど,結局ここでrevalidateするようにフラグが立てられる
  • 結果,ServerActionsを使うと無条件でRevalidateされる
    解決方法は
  • ServerActionsの時だけSetCookieしないようにする
    • 具体的には,自動でセッションの更新するのをやめさせて,ServerActions以外の時だけセッションの更新するように設定する
    • めんどいし,トークンの有効期限切れになりそう
  • Nextjs-auth0 のcookies.setだけ特別扱いしてrevalidate しないようにする
    • 具体的には,modified Cookieとして扱われないように,next側でcookies.setじゃなくて cookies._set_as_unmodified みたいなエンドポイントを用意して,nextjs-auth0でそれを使うようにする
    • 2つのでかいライブラリにPR出さないといけなくてキチィ