Files
enstrayedapi/disabled/auth.js
2024-09-22 14:04:15 -07:00

34 lines
1.2 KiB
JavaScript

import { globalConfig, app } from "../index.js"
import { logRequest } from "../liberals/logging.js"
app.delete("/api/token", (rreq,rres) => {
fetch(`${globalConfig.couchdbHost}/auth/sessions`).then(res => res.json()).then(fetchRes => {
if (fetchRes.sessions[rreq.get("Authorization")]) {
delete fetchRes.sessions[rreq.get("Authorization")]
fetch(`${globalConfig.couchdbHost}/auth/sessions`, {
method: "PUT",
headers: {
"If-Match": fetchRes._rev
},
body: JSON.stringify({
sessions: fetchRes.sessions
})
}).then(res => {
if (res.status == 201) {
rres.sendStatus(200)
} else {
logRequest(rres,rreq,500,`Token invalidation may have failed: ${res.status} ${res.statusText}`)
rres.sendStatus(500)
}
}).catch(fetchError => {
logRequest(rres,rreq,500,fetchError)
rres.sendStatus(500)
})
} else {
rres.sendStatus(400)
}
})
})
export default {app}