Token authentication on signup /user/ POST route working, started login and auth

This commit is contained in:
Ben
2018-09-04 16:34:58 +01:00
parent 9ecfa5204f
commit 29292603a5
19 changed files with 298 additions and 52 deletions

View File

@@ -50,10 +50,8 @@ export class BaseDatabase {
primaryKey: true,
unique: true
},
selector: Sequelize.TEXT,
validator: Sequelize.TEXT,
uid: Sequelize.BIGINT,
expires: Sequelize.TEXT
token: Sequelize.TEXT,
passhash: Sequelize.TEXT
}, {
tableName: `auth`
});

View File

@@ -28,3 +28,4 @@ export class Database extends BaseDatabase {
}
Database.users = require('./users').UserTools;
Database.auth = require('./tokens').TokenTools;

View File

@@ -0,0 +1,29 @@
import {BaseDatabase} from './baseDatabase';
import {Logger} from '../logger';
export class TokenTools extends BaseDatabase {
static async listAll() {
let Auth = BaseDatabase.Auth;
return Auth.findAll();
}
static async newToken(id, token, passHash) {
}
static async getTokenByID(id) {
}
static async getIDByToken(token) {
}
static async getTokenByPassHash(hash) {
}
static async updateToken(id, newToken) {
}
}

View File

@@ -60,31 +60,29 @@ export class UserTools extends BaseDatabase {
let User = BaseDatabase.User;
try {
let user;
if (column == 'id') {
return search;
} else if (column == 'username') {
let user = await User.findOne({where: {username: search}});
user = await User.findOne({where: {username: search}});
if (user == null) return -1;
return user;
} else if (column == 'email') {
let user = await User.findOne({where: {email: search}});
user = await User.findOne({where: {email: search}});
if (user == null) return -1;
return user;
} else if (column == 'password') {
let user = await User.findOne({where: {password: search}});
user = await User.findOne({where: {password: search}});
if (user == null) return -1;
return user;
} else if (column == 'ip') {
let user = await User.findOne({where: {ip: search}});
user = await User.findOne({where: {ip: search}});
if (user == null) return -1;
return user;
} else if (column == 'authcode') {
let user = await User.findOne({where: {authcode: search}});
user = await User.findOne({where: {authcode: search}});
if (user == null) return -1;
return user;
} else {
return -1
}
return user.id;
} catch (e) {
Logger.error(`An error occured while querying the id of a user where ${column} is ${search}: ${e}`);
return -1;