feat(server): pty websocket auth tickets (#25660)
This commit is contained in:
15
packages/opencode/src/server/shared/pty-ticket.ts
Normal file
15
packages/opencode/src/server/shared/pty-ticket.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
export const PTY_CONNECT_TICKET_QUERY = "ticket"
|
||||
export const PTY_CONNECT_TOKEN_HEADER = "x-opencode-ticket"
|
||||
export const PTY_CONNECT_TOKEN_HEADER_VALUE = "1"
|
||||
|
||||
const PTY_CONNECT_PATH = /^\/pty\/[^/]+\/connect$/
|
||||
|
||||
// Auth middleware skips Basic Auth when this matches; the PTY connect handler
|
||||
// is then responsible for validating the ticket.
|
||||
export function isPtyConnectPath(pathname: string) {
|
||||
return PTY_CONNECT_PATH.test(pathname)
|
||||
}
|
||||
|
||||
export function hasPtyConnectTicketURL(url: URL) {
|
||||
return isPtyConnectPath(url.pathname) && !!url.searchParams.get(PTY_CONNECT_TICKET_QUERY)
|
||||
}
|
||||
Reference in New Issue
Block a user