summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
authorTomatoCake <60300461+DEVTomatoCake@users.noreply.github.com>2024-08-30 14:46:27 +0200
committerTomatoCake <60300461+DEVTomatoCake@users.noreply.github.com>2024-08-30 14:46:27 +0200
commit03c050ae8bdc29ba940a2b59c2b5af2068a4af5d (patch)
treedc2d9ef5bb0a3b6687cbf6227f2fcb9203391216 /src/api
parentMerge pull request #1201 from CyberL1/fix/pins (diff)
downloadserver-ts-03c050ae8bdc29ba940a2b59c2b5af2068a4af5d.tar.xz
Fix HEAD requests for no authorization routes
Diffstat (limited to 'src/api')
-rw-r--r--src/api/middlewares/Authentication.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/api/middlewares/Authentication.ts b/src/api/middlewares/Authentication.ts

index ec77cbbb..b7159b9d 100644 --- a/src/api/middlewares/Authentication.ts +++ b/src/api/middlewares/Authentication.ts
@@ -32,7 +32,7 @@ export const NO_AUTHORIZATION_ROUTES = [ "POST /auth/reset", "GET /invites/", // 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 "GET /ping", "GET /gateway", @@ -51,11 +51,11 @@ export const NO_AUTHORIZATION_ROUTES = [ // Oauth callback "/oauth2/callback", // Asset delivery - /GET \/guilds\/\d+\/widget\.(json|png)/, + /(GET|HEAD) \/guilds\/\d+\/widget\.(json|png)/, // Connections - /POST \/connections\/\w+\/callback/, + /(POST|HEAD) \/connections\/\w+\/callback/, // 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+)?/; @@ -82,6 +82,12 @@ export async function Authentication( const url = req.url.replace(API_PREFIX, ""); if ( 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") return (req.method + " " + url).startsWith(x); return x.test(req.method + " " + url);