1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-09-19 17:21:35 +02:00

Fix HEAD requests for no authorization routes

This commit is contained in:
TomatoCake 2024-08-30 14:46:27 +02:00
parent 8c3eec87bb
commit 03c050ae8b

View File

@ -32,7 +32,7 @@ export const NO_AUTHORIZATION_ROUTES = [
"POST /auth/reset", "POST /auth/reset",
"GET /invites/", "GET /invites/",
// Routes with a seperate auth system // Routes with a seperate auth system
/POST \/webhooks\/\d+\/\w+\/?/, // no token requires auth /(POST|HEAD) \/webhooks\/\d+\/\w+\/?/, // no token requires auth
// Public information endpoints // Public information endpoints
"GET /ping", "GET /ping",
"GET /gateway", "GET /gateway",
@ -51,11 +51,11 @@ export const NO_AUTHORIZATION_ROUTES = [
// Oauth callback // Oauth callback
"/oauth2/callback", "/oauth2/callback",
// Asset delivery // Asset delivery
/GET \/guilds\/\d+\/widget\.(json|png)/, /(GET|HEAD) \/guilds\/\d+\/widget\.(json|png)/,
// Connections // Connections
/POST \/connections\/\w+\/callback/, /(POST|HEAD) \/connections\/\w+\/callback/,
// Image proxy // Image proxy
/GET \/imageproxy\/[A-Za-z0-9+/]\/\d+x\d+\/.+/, /(GET|HEAD) \/imageproxy\/[A-Za-z0-9+/]\/\d+x\d+\/.+/,
]; ];
export const API_PREFIX = /^\/api(\/v\d+)?/; export const API_PREFIX = /^\/api(\/v\d+)?/;
@ -82,6 +82,12 @@ export async function Authentication(
const url = req.url.replace(API_PREFIX, ""); const url = req.url.replace(API_PREFIX, "");
if ( if (
NO_AUTHORIZATION_ROUTES.some((x) => { NO_AUTHORIZATION_ROUTES.some((x) => {
if (req.method == "HEAD") {
if (typeof x === "string")
return url.startsWith(x.split(" ").slice(1).join(" "));
return x.test(req.method + " " + url);
}
if (typeof x === "string") if (typeof x === "string")
return (req.method + " " + url).startsWith(x); return (req.method + " " + url).startsWith(x);
return x.test(req.method + " " + url); return x.test(req.method + " " + url);