diff --git a/lib/database/queries/server-queries.js b/lib/database/queries/server-queries.js index 916eca9..59dea89 100644 --- a/lib/database/queries/server-queries.js +++ b/lib/database/queries/server-queries.js @@ -16,7 +16,10 @@ const getMclName = (host, id) => `${host.toLowerCase().replaceAll(".", "-")}-${id}`; export async function checkAuthorization(serverId, cairoId) { - if(!cairoId) return false; + console.log( + `Checking Authorization for user ${cairoId} for serverId ${serverId}`, + ); + if (!cairoId) return false; const q = selectWhereAllQuery(table, { id: serverId, owner_cairo_id: cairoId, diff --git a/lib/routes/middlewares/auth-middleware.js b/lib/routes/middlewares/auth-middleware.js index 8f4318f..bf9beda 100644 --- a/lib/routes/middlewares/auth-middleware.js +++ b/lib/routes/middlewares/auth-middleware.js @@ -9,16 +9,31 @@ const cairoAuthMiddleware = Router(); const cairoAuthenticate = async (token) => { const config = { headers: { Authorization: `Bearer ${token}` } }; - return fetch(`${MCL_CAIRO_URL}/api/user/info`, config).then((res) => - res.json(), - ); + return fetch(`${MCL_CAIRO_URL}/api/user/info`, config).then(async (res) => { + if (res.status >= 300) { + const errorMessage = await res + .json() + .then((data) => JSON.stringify(data)) + .catch(() => res.statusText); + throw Error( + `Could not authenticate with user, receieved message: ${errorMessage}`, + ); + } + + return res.json(); + }); }; // Middleware const cairoAuthHandler = (req, res, next) => { if (!req.token) return res.status(401).send("Cairo auth required!"); cairoAuthenticate(req.token) - .then((authData) => (req.cairoId = authData.id)) + .then((authData) => { + console.log(authData); + if (!authData.id) + throw Error(`Cairo didn't return the expected data! ${authData.id}`); + req.id = authData.id; + }) .then(() => next()) .catch((err) => { ERR("AUTH", err.response ? err.response.data : err.message);