Reset auth when connection closes
This commit is contained in:
@@ -37,6 +37,7 @@ export class ConnectionAuth {
|
|||||||
|
|
||||||
constructor(readonly connection: Connection) {
|
constructor(readonly connection: Connection) {
|
||||||
this.connection.on('receive', this.#onReceive)
|
this.connection.on('receive', this.#onReceive)
|
||||||
|
this.connection.on('close', this.#onClose)
|
||||||
}
|
}
|
||||||
|
|
||||||
#onReceive = (connection: Connection, message: SocketMessage) => {
|
#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 () => {
|
attempt = async () => {
|
||||||
if (!this.challenge) {
|
if (!this.challenge) {
|
||||||
throw new Error("Attempted to authenticate with no challenge")
|
throw new Error("Attempted to authenticate with no challenge")
|
||||||
@@ -124,6 +132,7 @@ export class ConnectionAuth {
|
|||||||
}
|
}
|
||||||
|
|
||||||
destroy = () => {
|
destroy = () => {
|
||||||
this.connection.off('recieve', this.#onReceive)
|
this.connection.off('receive', this.#onReceive)
|
||||||
|
this.connection.off('close', this.#onClose)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ export type RelayProfile = {
|
|||||||
// Utils related to bare urls
|
// Utils related to bare urls
|
||||||
|
|
||||||
export const isRelayUrl = (url: string) => {
|
export const isRelayUrl = (url: string) => {
|
||||||
|
if (!url.includes('://')) {
|
||||||
|
url = 'wss://' + url
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
new URL(url)
|
new URL(url)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -59,7 +63,7 @@ export const normalizeRelayUrl = (url: string) => {
|
|||||||
// Use our library to normalize
|
// Use our library to normalize
|
||||||
url = normalizeUrl(url, {stripHash: true, stripAuthentication: false})
|
url = normalizeUrl(url, {stripHash: true, stripAuthentication: false})
|
||||||
|
|
||||||
// Strip the protocol since only wss works, lowercase
|
// Strip the protocol, lowercase
|
||||||
url = stripProtocol(url).toLowerCase()
|
url = stripProtocol(url).toLowerCase()
|
||||||
|
|
||||||
// Urls without pathnames are supposed to have a trailing slash
|
// Urls without pathnames are supposed to have a trailing slash
|
||||||
|
|||||||
Reference in New Issue
Block a user