From 302da092484ff2b53a8286e118e2d3f10eb6c850 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer <markus-github@unterwaditzer.net> Date: Wed, 27 Nov 2024 16:32:44 +0100 Subject: [PATCH] fix: Add basic user-agent to all mastodon-bound requests (#2277) --- server/api/[server]/oauth/[origin].ts | 5 +++++ server/utils/shared.ts | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/server/api/[server]/oauth/[origin].ts b/server/api/[server]/oauth/[origin].ts index 08bfa8b6..646f9fde 100644 --- a/server/api/[server]/oauth/[origin].ts +++ b/server/api/[server]/oauth/[origin].ts @@ -1,5 +1,7 @@ import { stringifyQuery } from 'ufo' +import { defaultUserAgent } from '~/server/utils/shared' + export default defineEventHandler(async (event) => { let { server, origin } = getRouterParams(event) server = server.toLocaleLowerCase().trim() @@ -24,6 +26,9 @@ export default defineEventHandler(async (event) => { try { const result: any = await $fetch(`https://${server}/oauth/token`, { method: 'POST', + headers: { + 'user-agent': defaultUserAgent, + }, body: { client_id: app.client_id, client_secret: app.client_secret, diff --git a/server/utils/shared.ts b/server/utils/shared.ts index 7fa79c5e..ff33af62 100644 --- a/server/utils/shared.ts +++ b/server/utils/shared.ts @@ -13,6 +13,7 @@ import { env } from '#build-info' // @ts-expect-error virtual import import { driver } from '#storage-config' +import { version } from '~/config/env' import { APP_NAME } from '~/constants' import type { AppInfo } from '~/types' @@ -48,9 +49,14 @@ export function getRedirectURI(origin: string, server: string) { return `${origin}/api/${server}/oauth/${encodeURIComponent(origin)}` } +export const defaultUserAgent = `${APP_NAME}/${version}` + async function fetchAppInfo(origin: string, server: string) { const app: AppInfo = await $fetch(`https://${server}/api/v1/apps`, { method: 'POST', + headers: { + 'user-agent': defaultUserAgent, + }, body: { client_name: APP_NAME + (env !== 'release' ? ` (${env})` : ''), website: 'https://elk.zone',