Its working!

This commit is contained in:
Owen Schwartz
2024-10-06 22:09:30 -04:00
parent 800dcb6270
commit 143a3b756e
10 changed files with 81 additions and 15 deletions

View File

@@ -27,9 +27,10 @@ export const lucia = new Lucia(adapter, {
name: "session",
expires: false,
attributes: {
secure: environment.ENVIRONMENT === "prod",
sameSite: "strict",
// domain: "example.com"
// secure: environment.ENVIRONMENT === "prod",
// sameSite: "strict",
secure: false,
domain: ".testing123.io"
},
},
sessionExpiresIn: new TimeSpan(2, "w"),

View File

@@ -23,12 +23,11 @@ const handle = app.getRequestHandler();
const externalPort = environment.EXTERNAL_PORT;
const internalPort = environment.INTERNAL_PORT;
app.prepare().then(() => {
app.prepare().then(() => {
// External server
const externalServer = express();
externalServer.set("trust proxy", 1);
// externalServer.use(helmet()); // Disabled because causes issues with Next.js
externalServer.use(cors());

View File

@@ -10,6 +10,7 @@ import createHttpError from "http-errors";
import { z } from "zod";
import { fromError } from "zod-validation-error";
import { verifyTotpCode } from "@server/auth/2fa";
import logger from "@server/logger";
export const loginBodySchema = z.object({
email: z.string().email(),
@@ -116,9 +117,11 @@ export async function login(
}
const session = await lucia.createSession(existingUser.id, {});
const cookie = lucia.createSessionCookie(session.id).serialize();
logger.debug("Session cookie", JSON.stringify(cookie, null, 2));
res.appendHeader(
"Set-Cookie",
lucia.createSessionCookie(session.id).serialize(),
cookie
);
if (!existingUser.emailVerified) {

View File

@@ -5,6 +5,7 @@ import createHttpError from "http-errors";
import { z } from "zod";
import { fromError } from "zod-validation-error";
import { response } from "@server/utils/response";
import logger from "@server/logger";
export const verifyUserBody = z.object({
sessionId: z.string(),
@@ -23,6 +24,8 @@ export async function verifyUser(
): Promise<any> {
const parsedBody = verifyUserBody.safeParse(req.query);
logger.debug("Parsed body", parsedBody);
if (!parsedBody.success) {
return next(
createHttpError(
@@ -37,6 +40,9 @@ export async function verifyUser(
try {
const { session, user } = await lucia.validateSession(sessionId);
logger.debug("Session", session);
logger.debug("User", user);
if (!session || !user) {
return next(
createHttpError(HttpCode.UNAUTHORIZED, "Invalid session"),

View File

@@ -24,6 +24,6 @@ gerbilRouter.post("/receive-bandwidth", gerbil.receiveBandwidth);
const badgerRouter = Router();
internalRouter.use("/badger", badgerRouter);
internalRouter.get("/verify-user", badger.verifyUser)
badgerRouter.get("/verify-user", badger.verifyUser)
export default internalRouter;

View File

@@ -6,6 +6,7 @@ import { and, like, eq } from "drizzle-orm";
import logger from "@server/logger";
import HttpCode from "@server/types/HttpCode";
import env from "@server/environment";
import environment from "@server/environment";
export async function traefikConfigProvider(_: Request, res: Response) {
try {
@@ -31,14 +32,35 @@ export function buildTraefikConfig(
}
const http: DynamicTraefikConfig["http"] = {
routers: {},
services: {},
routers: {
"themainwebpage": {
"entryPoints": [
"http"
],
"middlewares": [
],
"service": "service-themainwebpage",
"rule": "Host(`testing123.io`)"
},
},
services: {
"service-themainwebpage": {
"loadBalancer": {
"servers": [
{
"url": `http://${environment.APP_NAME.toLowerCase()}:3000`
}
]
}
},
},
middlewares: {
[middlewareName]: {
plugin: {
[middlewareName]: {
apiBaseUrl: "http://localhost:3001/api/v1",
appBaseUrl: env.BASE_URL,
apiBaseUrl: `http://${environment.APP_NAME.toLowerCase()}:3001/api/v1`,
// appBaseUrl: env.BASE_URL,
appBaseUrl: "http://testing123.io:8081",
},
},
},