mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 21:34:24 +00:00
almost functional user login (mail still missing)
This commit is contained in:
@@ -19,9 +19,11 @@ let dbh;
|
||||
if ( settings.db === 'mysql' ) {
|
||||
const dbsoft = require( './mysqldb.js' );
|
||||
dbh = new dbsoft();
|
||||
dbh.connect();
|
||||
} else {
|
||||
const dbsoft = require( './jsondb.js' );
|
||||
const dbsoft = require( './nedbDB.js' );
|
||||
dbh = new dbsoft();
|
||||
dbh.connect();
|
||||
}
|
||||
|
||||
module.exports.getDataSimple = function getData ( db, column, searchQuery ) {
|
||||
|
||||
0
src/server/backend/db/db.json
Normal file
0
src/server/backend/db/db.json
Normal file
20
src/server/backend/db/jsonDataHelper.js
Normal file
20
src/server/backend/db/jsonDataHelper.js
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* libreevent - jsonDataHelper.js
|
||||
*
|
||||
* Created by Janis Hutz 07/16/2023, Licensed under the GPL V3 License
|
||||
* https://janishutz.com, development@janishutz.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
// IMPORTANT: Do not use this helper in any other context than in the jsondb.js file!
|
||||
// It is specifically designed for that thing and therefore doesn't use any unnecessary resources!
|
||||
|
||||
|
||||
class DataHelper {
|
||||
constructor () {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DataHelper;
|
||||
@@ -15,21 +15,22 @@ const path = require( 'path' );
|
||||
// to the whitelist of the database
|
||||
|
||||
class SQLDB {
|
||||
constructor () {
|
||||
constructor ( ) {
|
||||
this.sqlConnection = mysql.createConnection( JSON.parse( fs.readFileSync( path.join( __dirname + '/../../config/db.config.secret.json' ) ) ) );
|
||||
}
|
||||
|
||||
connect () {
|
||||
connect ( ) {
|
||||
this.sqlConnection.connect( function( err ) {
|
||||
if ( err ) {
|
||||
console.error( 'error connecting: ' + err.stack );
|
||||
return;
|
||||
}
|
||||
console.log( 'connected' );
|
||||
return 'connection';
|
||||
} );
|
||||
}
|
||||
|
||||
disconnect () {
|
||||
disconnect ( ) {
|
||||
this.sqlConnection.end();
|
||||
}
|
||||
|
||||
@@ -144,7 +145,6 @@ class SQLDB {
|
||||
}
|
||||
this.sqlConnection.query( command, ( error, results ) => {
|
||||
if ( error ) reject( error );
|
||||
console.log( results );
|
||||
resolve( results );
|
||||
} );
|
||||
} );
|
||||
|
||||
0
src/server/backend/db/nedbDB.js
Normal file
0
src/server/backend/db/nedbDB.js
Normal file
@@ -10,11 +10,11 @@
|
||||
|
||||
module.exports.generateToken = ( length ) => {
|
||||
let token = '';
|
||||
let min = 48;
|
||||
let min = 45;
|
||||
let max = 122;
|
||||
for ( let i = 0; i < length; i++ ) {
|
||||
let randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
while ( randomNumber === 92 || randomNumber === 58 || randomNumber === 96 || randomNumber === 94 || randomNumber === 64 ) {
|
||||
while ( ( 58 < randomNumber && randomNumber < 63 ) || ( 90 < randomNumber && randomNumber < 95 ) || ( 95 < randomNumber && randomNumber < 97 ) ) {
|
||||
randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
}
|
||||
token += String.fromCharCode( randomNumber );
|
||||
|
||||
@@ -24,6 +24,7 @@ module.exports = ( app, settings ) => {
|
||||
app.post( '/user/login', ( request, response ) => {
|
||||
if ( request.body.mail && request.body.password ) {
|
||||
pwdmanager.checkpassword( request.body.mail, request.body.password ).then( data => {
|
||||
request.session.username = request.body.mail;
|
||||
if ( data ) {
|
||||
// TODO: Send mails
|
||||
if ( settings.twoFA === 'standard' ) {
|
||||
@@ -67,7 +68,7 @@ module.exports = ( app, settings ) => {
|
||||
let verified = twoFA.verifyEnhanced( request.body.token, request.body.code );
|
||||
if ( verified ) {
|
||||
request.session.loggedInUser = true;
|
||||
responseObjects[ request.query.token ].write( 'data: authenticated\n\n' );
|
||||
responseObjects[ request.body.token ].write( 'data: authenticated\n\n' );
|
||||
response.send( 'ok' );
|
||||
} else response.send( 'wrong' );
|
||||
} );
|
||||
@@ -83,4 +84,9 @@ module.exports = ( app, settings ) => {
|
||||
response.write( 'data: connected\n\n' );
|
||||
responseObjects[ request.session.token ] = response;
|
||||
} );
|
||||
|
||||
app.get( '/user/logout', ( request, response ) => {
|
||||
request.session.loggedInUser = false;
|
||||
response.send( 'logoutOk' );
|
||||
} );
|
||||
};
|
||||
Reference in New Issue
Block a user