Fix terminal auth bootstrap and account checkout gate

This commit is contained in:
2569718930@qq.com
2026-06-14 05:52:44 +08:00
parent 1664925607
commit 0f00b00b5e
5 changed files with 64 additions and 4 deletions
@@ -96,6 +96,7 @@ export async function loadTerminalAuthProfile({
| null = null;
let latestCookiePayload: TerminalAuthProfilePayload | null = null;
let latestBearerPayload: TerminalAuthProfilePayload | null = null;
let sessionSettled = !hasSupabasePublicEnv;
const authenticatedProfile = new Promise<TerminalAuthProfilePayload>((resolve) => {
resolveAuthenticated = resolve;
@@ -119,6 +120,7 @@ export async function loadTerminalAuthProfile({
(async () => {
if (!hasSupabasePublicEnv) return null;
const sessionResult = await getSession();
sessionSettled = true;
if (resolvedAuthenticated) return null;
const accessToken = String(
sessionResult?.data?.session?.access_token || "",
@@ -142,6 +144,14 @@ export async function loadTerminalAuthProfile({
resolve(latestBearerPayload);
return;
}
if (
latestCookiePayload?.authenticated === false &&
hasSupabasePublicEnv &&
!sessionSettled
) {
reject(new Error("Terminal auth bootstrap timeout"));
return;
}
if (latestCookiePayload) {
resolve(latestCookiePayload);
return;