2025-05-07 11:43:16 -07:00
|
|
|
require("dotenv").config();
|
2025-04-16 10:49:46 -07:00
|
|
|
|
|
|
|
|
const cors = require("cors");
|
|
|
|
|
const express = require("express");
|
|
|
|
|
const passport = require("passport");
|
|
|
|
|
const passportSetup = require("./passport");
|
|
|
|
|
const authRoute = require("./routes/auth");
|
2025-05-20 17:03:18 -07:00
|
|
|
const apiRoute = require("./routes/api");
|
2025-04-16 10:49:46 -07:00
|
|
|
const session = require("express-session");
|
|
|
|
|
|
|
|
|
|
const app = express();
|
|
|
|
|
|
2025-05-07 11:43:16 -07:00
|
|
|
// console.log("AUTH_URL:", process.env.AUTH_URL);
|
|
|
|
|
const isProduction = process.env.NODE_ENV === "production";
|
2025-04-16 10:49:46 -07:00
|
|
|
app.use(
|
2025-05-07 11:43:16 -07:00
|
|
|
session({
|
|
|
|
|
secret: process.env.AUTH_SESSION_KEY,
|
|
|
|
|
resave: false,
|
|
|
|
|
saveUninitialized: false,
|
|
|
|
|
cookie: {
|
|
|
|
|
maxAge: 24 * 60 * 60 * 1000, // 1 day
|
|
|
|
|
//keep production security settings below disable for the mean-time because we need to integrate redis session for cross-origin to work properly
|
|
|
|
|
//sameSite: isProduction ? "none" : "lax", // or 'none' if using cross-origin
|
|
|
|
|
//secure: isProduction, // only true in production over HTTPS
|
|
|
|
|
},
|
|
|
|
|
})
|
2025-04-16 10:49:46 -07:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
app.use(passport.initialize());
|
|
|
|
|
app.use(passport.session());
|
|
|
|
|
|
2025-05-07 11:43:16 -07:00
|
|
|
const allowedOrigins = process.env.ACCEPTED_ORIGINS.split(",");
|
2025-04-16 10:49:46 -07:00
|
|
|
|
2025-05-07 11:43:16 -07:00
|
|
|
const corsOptions = {
|
|
|
|
|
origin: function (origin, callback) {
|
|
|
|
|
if (!origin || allowedOrigins.includes(origin)) {
|
|
|
|
|
callback(null, origin); // allow the request
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("Not allowed by CORS"));
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: ["GET", "POST", "OPTIONS"],
|
|
|
|
|
allowedHeaders: ["Content-Type", "Authorization"],
|
|
|
|
|
credentials: true,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
app.use(cors(corsOptions));
|
2025-05-02 15:06:00 -07:00
|
|
|
|
2025-05-20 17:03:18 -07:00
|
|
|
app.use("/api", apiRoute);
|
2025-04-16 10:49:46 -07:00
|
|
|
app.use("/auth", authRoute);
|
|
|
|
|
|
|
|
|
|
const port = process.env.PORT || 8080;
|
2025-05-07 11:43:16 -07:00
|
|
|
app.listen(port, () => console.log(`Listening on port ${port}...`));
|