Reset auth when connection closes

This commit is contained in:
Jon Staab
2024-10-18 09:41:23 -07:00
parent c121997a5f
commit b34e4923a8
2 changed files with 15 additions and 2 deletions
+10 -1
View File
@@ -37,6 +37,7 @@ export class ConnectionAuth {
constructor(readonly connection: Connection) {
this.connection.on('receive', this.#onReceive)
this.connection.on('close', this.#onClose)
}
#onReceive = (connection: Connection, message: SocketMessage) => {
@@ -63,6 +64,13 @@ export class ConnectionAuth {
}
}
#onClose = (connection: Connection) => {
this.challenge = undefined
this.request = undefined
this.message = undefined
this.status = None
}
attempt = async () => {
if (!this.challenge) {
throw new Error("Attempted to authenticate with no challenge")
@@ -124,6 +132,7 @@ export class ConnectionAuth {
}
destroy = () => {
this.connection.off('recieve', this.#onReceive)
this.connection.off('receive', this.#onReceive)
this.connection.off('close', this.#onClose)
}
}
+5 -1
View File
@@ -29,6 +29,10 @@ export type RelayProfile = {
// Utils related to bare urls
export const isRelayUrl = (url: string) => {
if (!url.includes('://')) {
url = 'wss://' + url
}
try {
new URL(url)
} catch (e) {
@@ -59,7 +63,7 @@ export const normalizeRelayUrl = (url: string) => {
// Use our library to normalize
url = normalizeUrl(url, {stripHash: true, stripAuthentication: false})
// Strip the protocol since only wss works, lowercase
// Strip the protocol, lowercase
url = stripProtocol(url).toLowerCase()
// Urls without pathnames are supposed to have a trailing slash