Repository navigation
Expand file tree
/
Copy pathindex.js
More file actions
89 lines (74 loc) · 2.56 KB
/
Copy pathindex.js
File metadata and controls
89 lines (74 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
let express = require('express');
let app = express();
let http = require('http');
let server = http.Server(app);
let bodyParser = require("body-parser");
let cookieParser = require("cookie-parser");
let session = require("express-session");
let mongoose = require("mongoose");
let Schema = mongoose.Schema;
let path = require("path");
let fs = require("fs");
let config = require("./config");
let port = process.env.PORT || config.port || 3021;
const allowedOrigins = ["https://mcauth.org", "https://minecraft.id"];
app.use(function (req, res, next) {
let origin = req.headers["origin"];
if (origin && allowedOrigins.indexOf(origin) !== -1) {
res.header('Access-Control-Allow-Origin', origin);
res.header('Access-Control-Allow-Credentials', 'true');
} else if (origin) {
console.warn("Disallowed Origin " + origin);
}
if (req.method === 'OPTIONS') {
res.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
res.header("Access-Control-Allow-Headers", "X-Requested-With, Accept, Content-Type, Origin");
res.header("Access-Control-Request-Headers", "X-Requested-With, Accept, Content-Type, Origin");
return res.sendStatus(200);
} else {
return next();
}
});
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json())
app.use(function (req, res, next) {
req.realAddress = req.header("x-real-ip") || req.realAddress;
next();
});
app.use("/.well-known", express.static(".well-known"));
app.use(cookieParser(config.cookieSecret));
app.set('trust proxy', 1) // trust first proxy
app.use(session({
secret: config.sessionSecret,
resave: true,
saveUninitialized: false,
cookie: {
// secure:true,
// domain: ".minecraft.id",
// path: "/",
// httpOnly: false
}
}));
// mongoose.plugin(util.idPlugin);
require("./db/db")(mongoose, config);
app.get("/", function (req, res) {
res.json({msg: "Hello World!"})
})
app.use("/auth", require("./routes/auth")(express, config));
app.use("/util", require("./routes/util")(express, config));
app.use("/status", require("./routes/status")(express, config));
app.use("/gateway", require("./routes/gateway")(express, config));
function exitHandler(err) {
if (err) {
console.log("\n\n\n\n\n\n\n\n");
console.log(err);
console.log("\n\n\n");
}
process.exit();
}
server.listen(port, function () {
console.log('listening on *:' + port);
});
process.on("exit", exitHandler);
process.on("SIGINT", exitHandler);
process.on("uncaughtException", exitHandler);