Внутри моих серверных компонентов React я читаю сеанс, используя:
Код: Выделить всё
const session = await auth();
Код: Выделить всё
revalidateTag("user");
Код: Выделить всё
export const getUser = unstable_cache(
async () => {
const session = await auth();
return session?.user;
},
["user"],
{ tags: ["user"] }
);
- после успешной мутации
- после вызова revalidateTag("user")
- а также после перехода на другой маршрут
База данных обновлено правильно, но auth(), похоже, разрешает устаревший кеш.
Единственное решение, которое это исправляет:
Код: Выделить всё
export const dynamic = "force-dynamic";
Вопросы
- Кешируется ли auth() для каждого запроса таким образом, чтобы это не становилось недействительным с помощью revalidateTag()?
- Если да, то каков рекомендуемый способ обеспечить свежие данные сеанса в RSC после действия сервера без принудительного динамического рендеринга?
Подробнее здесь: https://stackoverflow.com/questions/798 ... le-session
Мобильная версия