Index: server/authjs-handler.ts
===================================================================
--- server/authjs-handler.ts	(revision ff3a6146e85f77e90dc322a0ad0c9d9eb048c629)
+++ server/authjs-handler.ts	(revision 8ee45534cd667e6cced2ed96968c95d8de3b1029)
@@ -3,92 +3,34 @@
 import type { Session } from "@auth/core/types";
 import { enhance, type UniversalHandler, type UniversalMiddleware } from "@universal-middleware/core";
-import {eq, or} from "drizzle-orm";
-import { db } from "../database/drizzle/db";
-import {adminsTable, usersTable} from "../database/drizzle/schema";
-import bcrypt from "bcrypt";
-import { AuthDrizzleAdapter } from "./drizzle/auth-adapter";
 
 const authjsConfig = {
   basePath: "/api/auth",
   trustHost: true,
-  secret: process.env.AUTH_SECRET,
-  adapter: AuthDrizzleAdapter(),
-  session: {
-    strategy: "jwt",
-  },
+  // TODO: Replace secret {@see https://authjs.dev/reference/core#secret}
+  secret: "MY_SECRET",
   providers: [
+    // TODO: Choose and implement providers
     CredentialsProvider({
       name: "Credentials",
       credentials: {
-        username: { label: "Username", type: "text" },
+        username: { label: "Username", type: "text", placeholder: "jsmith" },
         password: { label: "Password", type: "password" },
       },
-      async authorize(credentials) {
-        const username = typeof credentials?.username === "string" ? credentials.username : null;
-        const password = typeof credentials?.password === "string" ? credentials.password : null;
+      async authorize() {
+        // Add logic here to look up the user from the credentials supplied
+        const user = { id: "1", name: "J Smith", email: "jsmith@example.com" };
 
-        if(!username || !password || typeof username !== 'string' || typeof password !== 'string') { return null; }
-        
-        const trimmedUsername = username.trim();
-
-        const user = await db.query.usersTable.findFirst({
-            where: or(
-                eq(usersTable.username, trimmedUsername),
-                eq(usersTable.email, trimmedUsername)
-            ),
-          });
-
-        if(!user) return null;
-
-        let isPasswordValid = false;
-
-        if (user.passwordHash.startsWith('$2b$') || user.passwordHash.startsWith('$2a$')) {
-            isPasswordValid = await bcrypt.compare(password, user.passwordHash);
-        } else {
-            isPasswordValid = password === user.passwordHash;
-        }
-
-        if(!isPasswordValid) return null;
-
-          const admin = await db.query.adminsTable.findFirst({
-              where: eq(adminsTable.userId, user.id),
-          });
-
-        return {
-            id: String(user.id),
-            username: user.username,
-            email: user.email,
-            isAdmin: !!admin
-        }
+        // Any object returned will be saved in `user` property of the JWT
+        // If you return null then an error will be displayed advising the user to check their details.
+        // You can also Reject this callback with an Error thus the user will be sent to the error page with the error message as a query parameter
+        return user ?? null;
       },
     }),
   ],
-
-  callbacks: {
-      async jwt({ token, user }) {
-          if (user) {
-              token.sub = user.id;
-
-              const customUser = user as any;
-              token.username = customUser.username;
-              token.email = customUser.email;
-              token.isAdmin = customUser.isAdmin;
-          }
-          return token;
-      },
-      async session({ session, token }) {
-          if (session.user) {
-              session.user.id = token.sub!;
-              session.user.name = token.username as string;
-
-              const customToken = token as any;
-              session.user.email = customToken.email;
-              session.user.isAdmin = customToken.isAdmin;
-          }
-          return session;
-      },
-  },
 } satisfies Omit<AuthConfig, "raw">;
 
+/**
+ * Retrieve Auth.js session from Request
+ */
 export async function getSession(req: Request, config: Omit<AuthConfig, "raw">): Promise<Session | null> {
   setEnvDefaults(process.env, config);
@@ -107,4 +49,8 @@
 }
 
+/**
+ * Add Auth.js session to context
+ * @link {@see https://authjs.dev/getting-started/session-management/get-session}
+ **/
 export const authjsSessionMiddleware: UniversalMiddleware = enhance(
   async (request, context) => {
@@ -123,9 +69,13 @@
   },
   {
-    name: "pc-forge:authjs-middleware",
+    name: "my-app:authjs-middleware",
     immutable: false,
   },
 );
 
+/**
+ * Auth.js route
+ * @link {@see https://authjs.dev/getting-started/installation}
+ **/
 export const authjsHandler = enhance(
   async (request) => {
@@ -133,5 +83,5 @@
   },
   {
-    name: "pc-forge:authjs-handler",
+    name: "my-app:authjs-handler",
     path: "/api/auth/**",
     method: ["GET", "POST"],
