From 437c6813791908cabd4bb21c8673f811ff636480 Mon Sep 17 00:00:00 2001 From: Derock Date: Mon, 18 Sep 2023 13:18:58 -0400 Subject: [PATCH] feat: simple auth --- apps/api/package.json | 4 +- apps/api/src/controllers/auth/guard.ts | 9 +++ apps/api/src/controllers/auth/index.ts | 68 +++++++++++++---- apps/api/src/controllers/auth/session.ts | 87 ++++++++++++++++++++++ apps/api/src/controllers/index.ts | 6 ++ apps/api/src/controllers/setup.ts | 75 +++++++++++++++++++ apps/api/src/database/index.ts | 7 +- apps/api/src/database/models/relations.ts | 14 ++++ apps/api/src/database/models/session.ts | 14 +--- apps/api/src/database/models/user.ts | 37 ++++----- apps/api/src/index.ts | 22 +++++- bun.lockb | Bin 201272 -> 37381 bytes 12 files changed, 296 insertions(+), 47 deletions(-) create mode 100644 apps/api/src/controllers/auth/guard.ts create mode 100644 apps/api/src/controllers/auth/session.ts create mode 100644 apps/api/src/controllers/index.ts create mode 100644 apps/api/src/controllers/setup.ts create mode 100644 apps/api/src/database/models/relations.ts diff --git a/apps/api/package.json b/apps/api/package.json index 8533284..792b53e 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -7,12 +7,14 @@ "dev": "bun --watch src/index.ts" }, "dependencies": { - "@elysiajs/cookie": "^0.6.1", + "@elysiajs/cookie": "latest", "@elysiajs/swagger": "^0.6.2", "@paralleldrive/cuid2": "^2.2.2", "@t3-oss/env-core": "^0.6.1", "drizzle-orm": "^0.28.6", "elysia": "latest", + "ipaddr.js": "^2.1.0", + "otp-io": "^1.2.6", "zod": "^3.22.2" }, "devDependencies": { diff --git a/apps/api/src/controllers/auth/guard.ts b/apps/api/src/controllers/auth/guard.ts new file mode 100644 index 0000000..18a9ed9 --- /dev/null +++ b/apps/api/src/controllers/auth/guard.ts @@ -0,0 +1,9 @@ +import type { BaseElysia } from "../.."; +type Context = Parameters[1]>[0]; + +export function isSignedIn(ctx: Context) { + if (!ctx.user) { + ctx.set.status = 401; + return { error: "Unauthorized" }; + } +} diff --git a/apps/api/src/controllers/auth/index.ts b/apps/api/src/controllers/auth/index.ts index 855854f..7e081af 100644 --- a/apps/api/src/controllers/auth/index.ts +++ b/apps/api/src/controllers/auth/index.ts @@ -1,24 +1,56 @@ -import { Elysia, t } from "elysia"; -import type { BaseElysiaContext } from "../.."; +import { t } from "elysia"; +import { sessionModel } from "../../database/models/session"; +import { createController } from ".."; +import { isSignedIn } from "./guard"; import { db } from "../../database"; +import { userModel as dbUser } from "../../database/models/user"; +import { eq } from "drizzle-orm"; -export const authController = new Elysia<"/auth", BaseElysiaContext>({ - prefix: "/auth", -}) +export const authController = createController("/auth") .post( "/login", async (ctx) => { // grab the user from the db and check the hashed password - const user = await db.query.user.findFirst({ - where: (user, { eq }) => eq(user.id, ctx.body.username), - }); + const [user] = await db + .select({ id: dbUser.id, password: dbUser.password }) + .from(dbUser) + .where(eq(dbUser.username, ctx.body.username)) + .limit(1) + .execute(); if (!user) { + // fake a slow response to prevent knowing if the user exists + // not 100% sure if this is necessary, but it can't hurt + await new Promise((resolve) => setTimeout(resolve, 50)); + ctx.set.status = 401; - return { error: "Invalid username or password" }; + return { error: "Invalid username or password", success: false }; } - // check the password + // validate password + if (!Bun.password.verify(ctx.body.password, user.password)) { + ctx.set.status = 401; + return { error: "Invalid username or password", success: false }; + } + + // create a session + const [sessionToken] = await db + .insert(sessionModel) + .values({ + userId: user.id, + lastIp: ctx.ip, + }) + .returning({ id: sessionModel.id }) + .execute(); + + // set the cookie + ctx.setCookie("session", sessionToken.id, { + httpOnly: true, + sameSite: "strict", + secure: true, + }); + + return { success: true }; }, { body: t.Object({ @@ -27,7 +59,17 @@ export const authController = new Elysia<"/auth", BaseElysiaContext>({ }), } ) - .get("/cookie", (...args) => { - console.log(args); - return "cookie"; + .get( + "/protected", + async (ctx) => { + return { success: true }; + }, + { + beforeHandle: [isSignedIn], + } + ) + .post("/setup-totp", async (ctx) => {}, { + body: t.Object({ + password: t.String(), + }), }); diff --git a/apps/api/src/controllers/auth/session.ts b/apps/api/src/controllers/auth/session.ts new file mode 100644 index 0000000..0d1834f --- /dev/null +++ b/apps/api/src/controllers/auth/session.ts @@ -0,0 +1,87 @@ +import cookie from "@elysiajs/cookie"; +import Elysia from "elysia"; +import type { ExtractContext } from "../.."; +import { db } from "../../database"; +import { userModel } from "../../database/models/user"; +import { sessionModel } from "../../database/models/session"; +import { eq } from "drizzle-orm"; +import ipaddrjs from "ipaddr.js"; + +type CookieReturn = ReturnType; +type CookieContext = ExtractContext; + +export const sessionMiddleware = new Elysia<"", CookieContext>() + .derive((ctx) => { + // TODO: cloudflare + + // apparently you can't get the remote ip in bun... + // https://github.com/oven-sh/bun/issues/3540 + let ip = "127.0.0.1"; + + // check the x-forwarded-for header since this app is behind a proxy + const realIPHeader = ctx.request.headers.get("x-forwarded-for"); + + // we need to select the left-most IP that is valid and non-private + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For + if (realIPHeader) { + for (let ip of realIPHeader.split(",")) { + // trim whitespace + ip = ip.trim(); + + // and check validity + if (ipaddrjs.isValid(ip) && ipaddrjs.process(ip).range() != "private") { + ip = ipaddrjs.process(ip).toString(); + break; + } + } + } + + return { + ip, + }; + }) + .derive(async (ctx) => { + // lookup session for the user + if (!ctx.cookie.session) { + return { + user: null, + }; + } + + // find session and user + const [user] = await db + .select({ + id: userModel.id, + username: userModel.username, + permissions: userModel.permissions, + + // get the last ip from the session + lastIp: sessionModel.lastIp, + }) + .from(sessionModel) + .where(eq(sessionModel.id, ctx.cookie.session)) + .innerJoin(userModel, eq(userModel.id, sessionModel.userId)) + .limit(1) + .execute(); + + // if the IP is different, we should update the session details + if (user.lastIp !== ctx.ip) { + // update the database asynchronously + (async () => + db + .update(sessionModel) + .set({ + lastIp: ctx.ip, + }) + .where(eq(sessionModel.id, ctx.cookie.session)) + .execute())(); + } + + return { + user: { + id: user.id, + username: user.username, + permissions: user.permissions, + }, + }; + }); diff --git a/apps/api/src/controllers/index.ts b/apps/api/src/controllers/index.ts new file mode 100644 index 0000000..8fe9d89 --- /dev/null +++ b/apps/api/src/controllers/index.ts @@ -0,0 +1,6 @@ +import Elysia from "elysia"; +import { BaseElysiaContext } from ".."; + +export function createController(prefix?: T) { + return new Elysia({ prefix }); +} diff --git a/apps/api/src/controllers/setup.ts b/apps/api/src/controllers/setup.ts new file mode 100644 index 0000000..1949450 --- /dev/null +++ b/apps/api/src/controllers/setup.ts @@ -0,0 +1,75 @@ +import { t } from "elysia"; +import { createController } from "."; +import { db } from "../database"; +import { userModel } from "../database/models/user"; +import { sessionModel } from "../database/models/session"; +import { sql } from "drizzle-orm"; + +export const setupController = createController("/setup") + .post( + "/", + async (ctx) => { + // if a user exists, we're already setup + if ( + ( + await db + .select({ count: sql`count(*)` }) + .from(userModel) + .limit(1) + .execute() + )[0].count > 0 + ) { + ctx.set.status = 400; + return { error: "Setup already completed.", success: false }; + } + console.log("a"); + // create the administrator user + const [adminUser] = await db + .insert(userModel) + .values({ + username: ctx.body.username, + password: await Bun.password.hash(ctx.body.password), + permissions: BigInt(1), + }) + .returning({ id: userModel.id }) + .execute(); + + // and set the session + const [sessionToken] = await db + .insert(sessionModel) + .values({ + userId: adminUser.id, + lastIp: ctx.ip, + }) + .returning() + .execute(); + + // set the cookie + ctx.setCookie("session", sessionToken.id, { + httpOnly: true, + sameSite: "strict", + secure: true, + }); + + return { success: true }; + }, + + { + body: t.Object({ + username: t.String(), + password: t.String(), + }), + } + ) + .get("/status", async () => { + return { + setupCompleted: + ( + await db + .select({ count: sql`count(*)` }) + .from(userModel) + .limit(1) + .execute() + )[0].count > 0, + }; + }); diff --git a/apps/api/src/database/index.ts b/apps/api/src/database/index.ts index 8225bd9..3774cec 100644 --- a/apps/api/src/database/index.ts +++ b/apps/api/src/database/index.ts @@ -5,6 +5,8 @@ import { env } from "../env"; import fs from "fs/promises"; import * as session from "./models/session"; import * as user from "./models/user"; +import * as relations from "./models/relations"; +import Elysia from "elysia"; // build database path const dbPath = path.join(process.cwd(), env.dbPath); @@ -26,5 +28,8 @@ const sqlite = new Database(path.join(process.cwd(), env.dbPath)); sqlite.run("pragma journal_mode = WAL"); export const db = drizzle(sqlite, { - schema: { ...user, ...session }, + schema: { ...user, ...session, ...relations }, }); + +// plugin to decorate `ctx.db` with the database +export const database = new Elysia().state("db", db); diff --git a/apps/api/src/database/models/relations.ts b/apps/api/src/database/models/relations.ts new file mode 100644 index 0000000..0113b7f --- /dev/null +++ b/apps/api/src/database/models/relations.ts @@ -0,0 +1,14 @@ +import { relations } from "drizzle-orm"; +import { sessionModel } from "./session"; +import { userModel } from "./user"; + +export const sessionRelations = relations(sessionModel, ({ one }) => ({ + user: one(userModel, { + fields: [sessionModel.userId], + references: [userModel.id], + }), +})); + +export const userRelations = relations(sessionModel, ({ many }) => ({ + sessions: many(sessionModel), +})); diff --git a/apps/api/src/database/models/session.ts b/apps/api/src/database/models/session.ts index 910a665..24bc726 100644 --- a/apps/api/src/database/models/session.ts +++ b/apps/api/src/database/models/session.ts @@ -1,19 +1,11 @@ import { sqliteTable, text } from "drizzle-orm/sqlite-core"; import { createSessionId } from "../../utils/crypto"; -import { relations } from "drizzle-orm"; -import { user } from "./user"; -export const session = sqliteTable("session", { +export const sessionModel = sqliteTable("session", { id: text("id") .primaryKey() .$defaultFn(() => createSessionId()), - userId: text("user_id").notNull().unique(), + userId: text("user_id").notNull(), + lastIp: text("last_ip").notNull(), }); - -export const sessionRelations = relations(session, ({ one }) => ({ - user: one(user, { - fields: [session.userId], - references: [user.id], - }), -})); diff --git a/apps/api/src/database/models/user.ts b/apps/api/src/database/models/user.ts index 14b638c..fbe0157 100644 --- a/apps/api/src/database/models/user.ts +++ b/apps/api/src/database/models/user.ts @@ -1,21 +1,24 @@ -import { blob, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core"; +import { blob, index, sqliteTable, text } from "drizzle-orm/sqlite-core"; import { createId } from "@paralleldrive/cuid2"; -import { relations } from "drizzle-orm"; -import { session } from "./session"; -export const user = sqliteTable("user", { - id: text("id", { length: 128 }) - .primaryKey() - .$defaultFn(() => createId()), +export const userModel = sqliteTable( + "user", + { + id: text("id", { length: 128 }) + .primaryKey() + .$defaultFn(() => createId()), - username: text("username").notNull(), - password: text("password").notNull(), + username: text("username").notNull().unique(), + password: text("password").notNull(), + mfaSecret: text("mfaSecret"), - // incase we need a larger number in the future, use a blob that can hold a bigint - // using $defaultFn otherwise drizzle will try to JSON.stringify the bigint during migrations - permissions: blob("permissions", { mode: "bigint" }).$defaultFn(() => 0n), -}); - -export const userRelations = relations(session, ({ many }) => ({ - sessions: many(session), -})); + // incase we need a larger number in the future, use a blob that can hold a bigint + // using $defaultFn otherwise drizzle will try to JSON.stringify the bigint during migrations + permissions: blob("permissions", { mode: "bigint" }).$defaultFn(() => 0n), + }, + (table) => { + return { + usernameIdx: index("username_idx").on(table.username), + }; + } +); diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 9dc01a9..21d9e31 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -3,17 +3,31 @@ import { cookie } from "@elysiajs/cookie"; import { authController } from "./controllers/auth"; import { env } from "./env"; import { prepDatabase } from "./database/migrate"; +import { database } from "./database"; +import { sessionMiddleware } from "./controllers/auth/session"; +import { setupController } from "./controllers/setup"; +import swagger from "@elysiajs/swagger"; // start by prepping the database prepDatabase(); // base elysia app with all the plugins -const baseApp = new Elysia().use(cookie()); -type ExtractContext = T extends Elysia ? V : never; -export type BaseElysiaContext = ExtractContext; +const baseApp = new Elysia() + .use(cookie()) + .use(database) + .use(sessionMiddleware) + .use(swagger()) + .onError(({ code, error, ...ctx }) => { + console.error(`error ${code} in ${ctx.request}: `, error); + return new Response(error.toString()); + }); + +export type ExtractContext = T extends Elysia ? V : never; +export type BaseElysia = typeof baseApp; +export type BaseElysiaContext = ExtractContext; // add in our routes -const withRoutes = baseApp.use(authController); +const withRoutes = baseApp.use(authController).use(setupController); export type ElysiaWithRoutes = typeof withRoutes; // if this is the main module, start the server diff --git a/bun.lockb b/bun.lockb index f84634740cc816198ee6f027f0155a163da41da4..ac8e106019b2f63d3be847d4381dd4b93c8ec268 100755 GIT binary patch delta 9137 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 literal 201272 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%0AZr#6FK2^ZY^9KhcY^ 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