.
This commit is contained in:
parent
60262323a3
commit
db35882a18
@ -63,7 +63,7 @@ mysql -u blair_user -p blair_dashboard < /var/www/blair/schema.sql
|
|||||||
```
|
```
|
||||||
https://deinedomain.de/auth/discord/callback
|
https://deinedomain.de/auth/discord/callback
|
||||||
```
|
```
|
||||||
4. Kopiere **Client ID** und **Client Secret**
|
4. Kopiere **Client ID** 1505635813072044062 und **Client Secret** fXQyM6oXGQWR23m3QbilHLTJiObg_kP-
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
"passport": "^0.6.0",
|
"passport": "^0.6.0",
|
||||||
"passport-discord": "^0.1.4",
|
"passport-discord": "^0.1.4",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
"connect-mysql-session": "^0.4.1",
|
"express-mysql-session": "^3.0.0",
|
||||||
"helmet": "^7.1.0",
|
"helmet": "^7.1.0",
|
||||||
"cors": "^2.8.5"
|
"cors": "^2.8.5"
|
||||||
},
|
},
|
||||||
|
|||||||
41
server.js
41
server.js
@ -1,15 +1,15 @@
|
|||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const session = require('express-session');
|
const session = require('express-session');
|
||||||
const passport = require('passport');
|
const passport = require('passport');
|
||||||
const helmet = require('helmet');
|
const helmet = require('helmet');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const db = require('./db');
|
const db = require('./db');
|
||||||
const authRoutes = require('./routes/auth');
|
const authRoutes = require('./routes/auth');
|
||||||
const apiRoutes = require('./routes/api');
|
const apiRoutes = require('./routes/api');
|
||||||
const adminRoutes = require('./routes/admin');
|
const adminRoutes = require('./routes/admin');
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|
||||||
// ── Security headers ──────────────────────────────────
|
// ── Security headers ──────────────────────────────────
|
||||||
@ -17,10 +17,10 @@ app.use(helmet({
|
|||||||
contentSecurityPolicy: {
|
contentSecurityPolicy: {
|
||||||
directives: {
|
directives: {
|
||||||
defaultSrc: ["'self'"],
|
defaultSrc: ["'self'"],
|
||||||
scriptSrc: ["'self'", "'unsafe-inline'", "fonts.googleapis.com"],
|
scriptSrc: ["'self'", "'unsafe-inline'", "fonts.googleapis.com"],
|
||||||
styleSrc: ["'self'", "'unsafe-inline'", "fonts.googleapis.com", "fonts.gstatic.com"],
|
styleSrc: ["'self'", "'unsafe-inline'", "fonts.googleapis.com", "fonts.gstatic.com"],
|
||||||
fontSrc: ["'self'", "fonts.gstatic.com", "fonts.googleapis.com"],
|
fontSrc: ["'self'", "fonts.gstatic.com", "fonts.googleapis.com"],
|
||||||
imgSrc: ["'self'", "data:", "cdn.discordapp.com"],
|
imgSrc: ["'self'", "data:", "cdn.discordapp.com"],
|
||||||
connectSrc: ["'self'", "discord.com"],
|
connectSrc: ["'self'", "discord.com"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -31,21 +31,22 @@ app.use(express.json());
|
|||||||
app.use(express.urlencoded({ extended: true }));
|
app.use(express.urlencoded({ extended: true }));
|
||||||
|
|
||||||
// ── Session with MySQL store ──────────────────────────
|
// ── Session with MySQL store ──────────────────────────
|
||||||
const MySQLStore = require('connect-mysql-session')(session);
|
const MySQLStore = require('express-mysql-session')(session);
|
||||||
app.use(session({
|
app.use(session({
|
||||||
secret: process.env.SESSION_SECRET,
|
secret: process.env.SESSION_SECRET,
|
||||||
resave: false,
|
resave: false,
|
||||||
saveUninitialized: false,
|
saveUninitialized: false,
|
||||||
store: new MySQLStore({
|
store: new MySQLStore({
|
||||||
host: process.env.DB_HOST,
|
host: process.env.DB_HOST,
|
||||||
port: parseInt(process.env.DB_PORT) || 3306,
|
port: parseInt(process.env.DB_PORT) || 3306,
|
||||||
database: process.env.DB_NAME,
|
database: process.env.DB_NAME,
|
||||||
user: process.env.DB_USER,
|
user: process.env.DB_USER,
|
||||||
password: process.env.DB_PASS,
|
password: process.env.DB_PASS,
|
||||||
|
createDatabaseTable: true,
|
||||||
}),
|
}),
|
||||||
cookie: {
|
cookie: {
|
||||||
maxAge: 7 * 24 * 60 * 60 * 1000, // 7 Tage
|
maxAge: 7 * 24 * 60 * 60 * 1000, // 7 Tage
|
||||||
secure: process.env.NODE_ENV === 'production',
|
secure: process.env.NODE_ENV === 'production',
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
sameSite: 'lax',
|
sameSite: 'lax',
|
||||||
},
|
},
|
||||||
@ -60,8 +61,8 @@ app.use(passport.session());
|
|||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
// ── Routes ────────────────────────────────────────────
|
// ── Routes ────────────────────────────────────────────
|
||||||
app.use('/auth', authRoutes);
|
app.use('/auth', authRoutes);
|
||||||
app.use('/api', apiRoutes);
|
app.use('/api', apiRoutes);
|
||||||
app.use('/admin', adminRoutes);
|
app.use('/admin', adminRoutes);
|
||||||
|
|
||||||
// ── SPA fallback ──────────────────────────────────────
|
// ── SPA fallback ──────────────────────────────────────
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user