fix(desktop): use one-time token in cli settings

This commit is contained in:
DIYgod 2026-04-02 21:11:58 +08:00
parent 8b3a1b8965
commit 0508144f8d
1 changed files with 28 additions and 2 deletions

View File

@ -4,11 +4,34 @@ import { useCallback, useEffect, useState } from "react"
import { useTranslation } from "react-i18next"
import { toast } from "sonner"
import { oneTimeToken } from "~/lib/auth"
import { ipcServices } from "~/lib/client"
import { getAuthSessionToken } from "~/lib/client-session"
import { SettingSectionTitle } from "../section"
const getOneTimeTokenFromResult = (result: unknown) => {
if (!result || typeof result !== "object") {
return null
}
if ("token" in result && typeof result.token === "string") {
return result.token
}
if (
"data" in result &&
result.data &&
typeof result.data === "object" &&
"token" in result.data &&
typeof result.data.token === "string"
) {
return result.data.token
}
return null
}
export const SettingCli = () => {
interface CliInstallStatus {
connected: boolean
@ -37,8 +60,11 @@ export const SettingCli = () => {
const handleInstall = useCallback(async () => {
setLoading(true)
try {
const authSessionToken = getAuthSessionToken()
const result = await ipcServices?.cli.installCli(authSessionToken ?? undefined)
const generatedOneTimeToken = getOneTimeTokenFromResult(await oneTimeToken.generate())
const fallbackToken = getAuthSessionToken()
const result = await ipcServices?.cli.installCli(
generatedOneTimeToken ?? fallbackToken ?? undefined,
)
if (result?.success) {
toast.success(t("cli.install_success"))
} else {