summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/terminal.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/components/terminal.tsx')
-rw-r--r--packages/app/src/components/terminal.tsx8
1 files changed, 6 insertions, 2 deletions
diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx
index 0a5a7d2d3..31c046c4f 100644
--- a/packages/app/src/components/terminal.tsx
+++ b/packages/app/src/components/terminal.tsx
@@ -174,6 +174,7 @@ export const Terminal = (props: TerminalProps) => {
const auth = server.current?.http
const username = auth?.username ?? "opencode"
const password = auth?.password ?? ""
+ const sameOrigin = new URL(url, location.href).origin === location.origin
let container!: HTMLDivElement
const [local, others] = splitProps(props, ["pty", "class", "classList", "autoFocus", "onConnect", "onConnectError"])
const id = local.pty.id
@@ -519,8 +520,11 @@ export const Terminal = (props: TerminalProps) => {
next.searchParams.set("directory", directory)
next.searchParams.set("cursor", String(seek))
next.protocol = next.protocol === "https:" ? "wss:" : "ws:"
- next.username = username
- next.password = password
+ if (!sameOrigin && password) {
+ // For same-origin requests, let the browser reuse the page's existing auth.
+ next.username = username
+ next.password = password
+ }
const socket = new WebSocket(next)
socket.binaryType = "arraybuffer"