Compare commits

...

7 Commits

Author SHA1 Message Date
AnzeBlaBla e0a6a1ff62 Moved logReq 2022-11-18 19:03:45 +01:00
AnzeBlaBla 5bca9cd5f7 logs2 2022-11-18 18:59:44 +01:00
AnzeBlaBla c81bc06b8d logž 2022-11-18 18:56:26 +01:00
AnzeBlaBla 427cf7aa94 fixed algos 2022-11-18 18:21:51 +01:00
AnzeBlaBla fa5dc6c535 patch 2022-11-18 18:21:07 +01:00
AnzeBlaBla 99f69e141e Fixed logging 2022-11-18 18:01:30 +01:00
Gasper Spagnolo 401dc44348 Add console logsd 2022-11-18 17:38:24 +01:00
3 changed files with 30 additions and 2 deletions

View File

@ -14,13 +14,17 @@ router.get('/login', function (req, res, next) {
router.post('/login', async (req, res, next) => { router.post('/login', async (req, res, next) => {
const { email, password } = req.body; const { email, password } = req.body;
console.log("/login: " + JSON.stringify(req.body));
const r = await db.query('SELECT * FROM users WHERE email=$1', [email]); const r = await db.query('SELECT * FROM users WHERE email=$1', [email]);
if (r.rowCount < 1 || r.rows[0].password !== password) { if (r.rowCount < 1 || r.rows[0].password !== password) {
res.locals.errormsg = 'Wrong credentials'; res.locals.errormsg = 'Wrong credentials';
console.log("login failed");
return res.status(403).render('login'); return res.status(403).render('login');
} }
const token = jwt.sign({ email }, PRIV_KEY, { algorithm: 'RS256' }); const token = jwt.sign({ email }, PRIV_KEY, { algorithm: 'RS256' });
console.log("Login success");
res.cookie('session', token); res.cookie('session', token);
res.redirect('/'); res.redirect('/');
}); });
@ -31,6 +35,7 @@ router.get('/register', function (req, res, next) {
router.post('/register', async (req, res, next) => { router.post('/register', async (req, res, next) => {
const { email, nickname, password } = req.body; const { email, nickname, password } = req.body;
console.log("/register: " + JSON.stringify(req.body));
const reg = /^[\w\.@]{4,40}$/; const reg = /^[\w\.@]{4,40}$/;
@ -47,9 +52,12 @@ router.post('/register', async (req, res, next) => {
} catch (error) { } catch (error) {
res.locals.errormsg = 'Email or nickname already used'; res.locals.errormsg = 'Email or nickname already used';
res.clearCookie('session'); res.clearCookie('session');
console.log("register fail");
return res.render('register'); return res.render('register');
} }
console.log("register success");
res.redirect('/'); res.redirect('/');
}); });
@ -70,7 +78,7 @@ const cookieExtractor = function (req) {
const opts = {}; const opts = {};
opts.jwtFromRequest = cookieExtractor; opts.jwtFromRequest = cookieExtractor;
opts.secretOrKey = PUB_KEY; opts.secretOrKey = PUB_KEY;
opts.algorithms = ['RS256', 'ES256', 'HS256']; opts.algorithms = ['RS256'];
//opts.issuer = 'localhost'; //opts.issuer = 'localhost';
//opts.audience = 'localhost'; //opts.audience = 'localhost';

View File

@ -7,6 +7,7 @@ const db = require('../db');
const router = express.Router(); const router = express.Router();
async function create_message(channel_id, msg, author) { async function create_message(channel_id, msg, author) {
console.log("create_message: " + channel_id + " - " + msg + " - " + author);
let r = await db.query('SELECT * FROM channels WHERE id=$1', [channel_id]); let r = await db.query('SELECT * FROM channels WHERE id=$1', [channel_id]);
if (r.rowCount < 1) { if (r.rowCount < 1) {
@ -30,6 +31,7 @@ async function create_message(channel_id, msg, author) {
} }
async function list_channels(user) { async function list_channels(user) {
console.log("list_channel: " + JSON.stringify(user));
const r = await db.query('SELECT id, detail, private FROM channels WHERE private=FALSE UNION SELECT id, detail, private FROM channels, allowed_users WHERE id = channel_id AND user_email = $1', [user]); const r = await db.query('SELECT id, detail, private FROM channels WHERE private=FALSE UNION SELECT id, detail, private FROM channels, allowed_users WHERE id = channel_id AND user_email = $1', [user]);
return r.rows; return r.rows;
} }
@ -65,6 +67,7 @@ router.get('/channel/:id', async (req, res, next) => {
}); });
router.post('/new_channel', async (req, res, next) => { router.post('/new_channel', async (req, res, next) => {
console.log("/new_chanell: " + JSON.stringify(req.body));
const { channelid, detail } = req.body; const { channelid, detail } = req.body;
const user = req.user.email; const user = req.user.email;
@ -81,6 +84,7 @@ router.post('/new_channel', async (req, res, next) => {
router.post('/new_message', async (req, res, next) => { router.post('/new_message', async (req, res, next) => {
const { msg, channelid } = req.body; const { msg, channelid } = req.body;
console.log("/new_message: ", + JSON.stringify(req.body));
const author = req.user.email; const author = req.user.email;
try { try {
@ -95,6 +99,7 @@ router.post('/new_message', async (req, res, next) => {
router.post('/invite', async (req, res, next) => { router.post('/invite', async (req, res, next) => {
const { channelid, user } = req.body; const { channelid, user } = req.body;
const logged_user = req.user.email; const logged_user = req.user.email;
console.log("/invite: ", +JSON.stringify(req.body));
let r = await db.query('SELECT user_email FROM allowed_users WHERE user_email=$1 AND channel_id=$2', [logged_user, channelid]); let r = await db.query('SELECT user_email FROM allowed_users WHERE user_email=$1 AND channel_id=$2', [logged_user, channelid]);
@ -125,6 +130,7 @@ router.get('/broadcast', async (req, res, next) => {
}); });
router.post('/broadcast', async (req, res, next) => { router.post('/broadcast', async (req, res, next) => {
console.log("/broadcast: ", JSON.stringify(req.body));
let { msg } = req.body; let { msg } = req.body;
const author = req.user.email; const author = req.user.email;
const channels = Object.keys(req.cookies); const channels = Object.keys(req.cookies);
@ -134,6 +140,7 @@ router.post('/broadcast', async (req, res, next) => {
let promises = []; let promises = [];
for (const c of channels) { for (const c of channels) {
if (c !== 'session')
promises.push(create_message(c, msg, author)); promises.push(create_message(c, msg, author));
} }

View File

@ -8,6 +8,16 @@ const PORT = 3000;
const app = express(); const app = express();
// Log all possible data about request
const logRequest = (req, res, next) => {
console.log('Request URL: ' + req.url);
console.log('Request method: ' + req.method);
console.log('Request headers: ' + JSON.stringify(req.headers));
console.log('Request body: ' + JSON.stringify(req.body));
next();
};
// const indexRouter = require('./routes/index'); // const indexRouter = require('./routes/index');
const authRouter = require('./routes/auth'); const authRouter = require('./routes/auth');
const channelRouter = require('./routes/channel'); const channelRouter = require('./routes/channel');
@ -17,6 +27,9 @@ app.set('view engine', 'ejs');
app.use(express.urlencoded()); app.use(express.urlencoded());
app.use(cookieParser()); app.use(cookieParser());
app.use(logRequest);
app.use((req, res, next) => { app.use((req, res, next) => {
if (!req.headers.httpversion || req.headers.httpversion !== 'HTTP/3.0') { if (!req.headers.httpversion || req.headers.httpversion !== 'HTTP/3.0') {