Skip to content

Commit b0bd7ef

Browse files
VidithMSysSn13
andauthored
Bullboard auth (#11)
* Added bull-board auth using passport.js * Minor changes * update .gitignore Co-authored-by: SysSn13 <sudesh18@iitg.ac.in>
1 parent e8dfbd2 commit b0bd7ef

10 files changed

+8762
-19
lines changed

.env.example

+4
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ API_RATE_LIMIT=20
1111
BACKGROUND=0
1212
REDIS_URL=redis://127.0.0.1:6379
1313
THREAD_CNT=4
14+
15+
BULLBOARD_USERNAME=bull-board
16+
BULLBOARD_PASS=admin
17+
SESSION_SECRET=keyboard-key

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
.env
22
node_modules
3-
.snyk
3+
.snyk

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,14 @@ BACKGROUND: Whether to run the background or not. (0 or 1)
180180
REDIS_URL: Connection string for redis.
181181

182182
THREAD_CNT: Number of threads for prediction.(default: 4)
183+
184+
# bull-board auth
185+
BULLBOARD_USERNAME: username for bull-board login
186+
187+
BULLBOARD_PASS: password for bull-board login
188+
189+
SESSION_SECRET: secret to hash the session
190+
183191
```
184192
185193
## Browser extension

main.js

+35-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ if (process.env.NODE_ENV !== "production") {
33
}
44
const express = require("express");
55
const rateLimit = require("express-rate-limit");
6+
const unless = require("express-unless");
7+
68
const expressLayouts = require("express-ejs-layouts");
9+
expressLayouts.unless = unless;
10+
711
const bodyParser = require("body-parser");
812

913
// database
@@ -32,23 +36,40 @@ app.use(limiter);
3236
// body limit
3337
app.use(express.json({ limit: "10kb" }));
3438

39+
app.set("view engine", "ejs");
40+
app.set("views", __dirname + "/views");
41+
app.use(bodyParser.urlencoded({ extended: true }));
42+
app.use(express.static("public"));
43+
app.use(
44+
expressLayouts.unless({
45+
path: [/\/bull-board*/],
46+
})
47+
);
48+
3549
// background
3650
if (process.env.BACKGROUND == true) {
3751
const { bullBoardServerAdapter } = require("./background");
38-
app.use("/bull-board", bullBoardServerAdapter.getRouter());
52+
const { ensureLoggedIn } = require("connect-ensure-login");
53+
const passport = require("passport");
54+
const session = require("express-session");
55+
app.use(session({ secret: process.env.SESSION_SECRET }));
56+
app.use(passport.initialize({}));
57+
app.use(passport.session({}));
58+
const authRouter = require("./routes/auth");
59+
app.use("/login", authRouter);
60+
app.use(
61+
"/bull-board",
62+
ensureLoggedIn("/login"),
63+
bullBoardServerAdapter.getRouter()
64+
);
3965
console.info("BACKGROUND is up.");
4066
}
4167

4268
// web
4369
if (process.env.WEB == true) {
44-
const webRouter = require("./web");
45-
app.set("view engine", "ejs");
46-
app.set("views", __dirname + "/views");
4770
app.set("layout", "layouts/layout");
4871
app.set("layout extractScripts", true);
49-
app.use(expressLayouts);
50-
app.use(bodyParser.urlencoded({ extended: true }));
51-
app.use(express.static("public"));
72+
const webRouter = require("./web");
5273
app.use("/", webRouter);
5374
console.info("WEB is up.");
5475
}
@@ -69,6 +90,13 @@ if (!process.env.API_DISABLED) {
6990
console.info("API is up.");
7091
}
7192

93+
// 404 page
94+
app.use((req, res) => {
95+
res.status(404).render("errors/404", {
96+
title: "404 Not Found",
97+
});
98+
});
99+
72100
const port = process.env.PORT || 8080;
73101

74102
app.listen(port, (err) => {

0 commit comments

Comments
 (0)