|
|
@@ -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"
|