[HOTFIX] Auth Credential Failure check
This commit is contained in:
parent
40f020d27b
commit
626ebf9d1d
2 changed files with 23 additions and 5 deletions
|
@ -16,6 +16,9 @@ const getMclName = (host, id) =>
|
|||
`${host.toLowerCase().replaceAll(".", "-")}-${id}`;
|
||||
|
||||
export async function checkAuthorization(serverId, cairoId) {
|
||||
console.log(
|
||||
`Checking Authorization for user ${cairoId} for serverId ${serverId}`,
|
||||
);
|
||||
if (!cairoId) return false;
|
||||
const q = selectWhereAllQuery(table, {
|
||||
id: serverId,
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue