fix(desktop): persist session token after 2fa

This commit is contained in:
DIYgod 2026-04-02 22:19:36 +08:00
parent 69bed891a3
commit 43b5052b06
2 changed files with 29 additions and 2 deletions

View File

@ -204,6 +204,14 @@ export class AuthService extends IpcService {
})
}
const sessionToken =
data.session && typeof data.session === "object" && "token" in data.session
? (data.session as { token?: unknown }).token
: null
if (typeof sessionToken === "string") {
data.sessionToken = sessionToken
}
return {
data,
error: response.ok

View File

@ -45,16 +45,35 @@ const getAuthTokenFromResult = (result: unknown) => {
return result.sessionToken
}
if ("session" in result && result.session && typeof result.session === "object") {
const { token } = result.session as { token?: unknown }
if (typeof token === "string") {
return token
}
}
if (
"data" in result &&
result.data &&
typeof result.data === "object" &&
("sessionToken" in result.data || "token" in result.data)
("sessionToken" in result.data || "token" in result.data || "session" in result.data)
) {
const { sessionToken, token } = result.data as { sessionToken?: unknown; token?: unknown }
const { sessionToken, token, session } = result.data as {
sessionToken?: unknown
token?: unknown
session?: { token?: unknown } | unknown
}
if (typeof token === "string") {
return token
}
if (
session &&
typeof session === "object" &&
"token" in session &&
typeof session.token === "string"
) {
return session.token
}
return typeof sessionToken === "string" ? sessionToken : null
}