diff options
| author | Kit Langton <[email protected]> | 2026-05-03 17:13:42 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-05-03 21:13:42 +0000 |
| commit | ca6150d6f092cc8761d6072b0b07b6a7de8748cf (patch) | |
| tree | 2e62b173530b8bb8f1d0d9583764217d3b7a888b /packages/app/src/utils/server.ts | |
| parent | 825ab2e38d1f41074bb536b6ba5771f30594b197 (diff) | |
| download | opencode-ca6150d6f092cc8761d6072b0b07b6a7de8748cf.tar.gz opencode-ca6150d6f092cc8761d6072b0b07b6a7de8748cf.zip | |
fix(app): preserve auth token credentials (#25636)
Diffstat (limited to 'packages/app/src/utils/server.ts')
| -rw-r--r-- | packages/app/src/utils/server.ts | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/packages/app/src/utils/server.ts b/packages/app/src/utils/server.ts index ae849b71e..603784e4d 100644 --- a/packages/app/src/utils/server.ts +++ b/packages/app/src/utils/server.ts @@ -1,5 +1,21 @@ import { createOpencodeClient } from "@opencode-ai/sdk/v2/client" import type { ServerConnection } from "@/context/server" +import { decode64 } from "@/utils/base64" + +export function authTokenFromCredentials(input: { username?: string; password: string }) { + return btoa(`${input.username ?? "opencode"}:${input.password}`) +} + +export function authFromToken(token: string | null) { + const decoded = decode64(token ?? undefined) + if (!decoded) return + const separator = decoded.indexOf(":") + if (separator === -1) return + return { + username: decoded.slice(0, separator) || "opencode", + password: decoded.slice(separator + 1), + } +} export function createSdkForServer({ server, @@ -10,7 +26,7 @@ export function createSdkForServer({ const auth = (() => { if (!server.password) return return { - Authorization: `Basic ${btoa(`${server.username ?? "opencode"}:${server.password}`)}`, + Authorization: `Basic ${authTokenFromCredentials({ username: server.username, password: server.password })}`, } })() |
