From 26521b70a79c42442f44c8053590bbb8c5e5f1b1 Mon Sep 17 00:00:00 2001 From: kamtschatka Date: Sat, 21 Sep 2024 21:17:12 +0200 Subject: feature(extension): Allow login directly with an API key * [Feature request] NextAuth Providers for OAuth/SSO #92 Added API key based authentication to the extension to make the extension usable when OAuth is in use * Minor UI tweak --------- Co-authored-by: MohamedBassem --- packages/trpc/routers/apiKeys.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'packages/trpc') diff --git a/packages/trpc/routers/apiKeys.ts b/packages/trpc/routers/apiKeys.ts index deeb108f..81e3bb2b 100644 --- a/packages/trpc/routers/apiKeys.ts +++ b/packages/trpc/routers/apiKeys.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { apiKeys } from "@hoarder/db/schema"; -import { generateApiKey, validatePassword } from "../auth"; +import { authenticateApiKey, generateApiKey, validatePassword } from "../auth"; import { authedProcedure, publicProcedure, router } from "../index"; const zApiKeySchema = z.object({ @@ -81,4 +81,13 @@ export const apiKeysAppRouter = router({ } return await generateApiKey(input.keyName, user.id); }), + validate: publicProcedure + .input(z.object({ apiKey: z.string() })) + .output(z.object({ success: z.boolean() })) + .mutation(async ({ input }) => { + await authenticateApiKey(input.apiKey); // Throws if the key is invalid + return { + success: true, + }; + }), }); -- cgit v1.2.3-70-g09d2