Files
enstrayedapi/liberals/auth.js
Enstrayed 86224d00e3 I forgor
2024-08-17 11:04:58 -07:00

32 lines
1.2 KiB
JavaScript

const { globalConfig } = require("../index.js")
async function checkToken(token,scope) {
return await fetch(`${globalConfig.couchdbHost}/auth/sessions`).then(fetchRes => {
// CouchDB should only ever return 200/304 for success so this should work
// https://docs.couchdb.org/en/stable/api/document/common.html#get--db-docid
if (fetchRes.status !== 200 || fetchRes.status !== 304) {
console.log(`ERROR: auth.js: Database request returned ${fetchRes.status}`)
return false
} else {
return fetchRes.json().then(dbRes => {
if (dbRes.sessions[token] == undefined) { // If the token is not on the sessions list then reject
return false
} else if (dbRes.sessions[token].scopes.includes(scope)) { // If the token is on the seesions list and includes the scope then accept
return true
} else { // Otherwise reject
return false
}
})
}
}).catch(error => {
console.log("ERROR: auth.js: " + error)
return false
})
}
module.exports = {checkToken}