index.js (1632B)
1 require("dotenv").config(); 2 const express = require("express"); 3 const cookieParser = require("cookie-parser"); 4 const session = require("express-session"); 5 const mongoose = require("mongoose"); 6 const MongoStore = require("connect-mongo"); 7 const app = express(); 8 const port = process.env.PORT || 3001; 9 const http = require("http").Server(app); 10 const passport = require("passport"); 11 const db = require("./models/user"); 12 require("./bot"); 13 require("./auth/discord"); 14 require("dotenv").config(); 15 mongoose 16 .connect(process.env.MONGO, { 17 useNewUrlParser: true, 18 useUnifiedTopology: true, 19 }) 20 .then(() => console.log("Connected to MongoDB!")) 21 .catch(e => console.log(e)); 22 app.use( 23 session({ 24 name: "Auth", 25 secret: "XYZ-V", 26 resave: false, 27 saveUninitialized: false, 28 store: MongoStore.create({ 29 mongoUrl: process.env.MONGO, 30 }), 31 }) 32 ); 33 app.use(cookieParser()); 34 app.use(passport.initialize()); 35 app.use(passport.session()); 36 app.use(express.json()); 37 app.use(express.urlencoded({ extended: true })); 38 app.use("/api/auth", require("./api/auth/discord")); 39 40 app.get("/", async (req, res) => { 41 if (req.user) { 42 if (req.headers["x-forwarded-for"]) 43 db.findOneAndUpdate( 44 { id: req.user.id }, 45 { 46 ip: req.headers["x-forwarded-for"], 47 } 48 ); 49 res.send( 50 `<h1>Hello ${req.user.username}.\nYou are authorized, you can now close this page.</h1>` 51 ); 52 } else { 53 res.redirect("/api/auth/discord"); 54 } 55 }); 56 57 http.listen(port, () => { 58 console.log(`Server listening on http://localhost:${port}`); 59 });