Begin migration to registration codes
Signed-off-by: Fred Boniface <fred@fjla.uk>
This commit is contained in:
@@ -6,7 +6,36 @@ const domains = require("../configs/domains.configs");
|
||||
const errors = require("../configs/errorCodes.configs");
|
||||
|
||||
import { logger } from "../utils/logger.utils";
|
||||
import { getDomainFromEmail } from "../utils/sanitizer.utils";
|
||||
import { valid as validDomains } from "../configs/domains.configs";
|
||||
import { generateCode } from "../utils/auth.utils";
|
||||
|
||||
async function createRegKey(body) {
|
||||
logger.debug("registerServices.createRegKey: Incoming request");
|
||||
if (body.email) {
|
||||
const domain = getDomainFromEmail(body.email);
|
||||
logger.info(`registerServices: Registration request from: ${domain}`);
|
||||
if (validDomains.includes(domain)) {
|
||||
logger.debug(`registerServices.createRegKey: Key from valid: ${domain}`);
|
||||
const key = generateCode()
|
||||
const message = await auth.generateConfirmationEmail(body.email, key);
|
||||
if (!message) {
|
||||
const err = new Error("Message Generation Error");
|
||||
logger.error(err, "registerServices.createRegKey: Error generating email");
|
||||
return 500;
|
||||
}
|
||||
if ((await mail.send(message)) == true) {
|
||||
return {status: 201, message: "email sent"};
|
||||
}
|
||||
return {status:500, errorCode:950, errorMsg: errors[950]}
|
||||
}
|
||||
return { status: 403, errorCode: 702, errorMsg: errors[702] };
|
||||
} else {
|
||||
return { status: 400, errorCode: 901, errorMsg: errors[902] };
|
||||
}
|
||||
} // NEXT-- UPDATE EMAIL TEMPLATE TO ACCEPT SIX DIGIT CODE RATHER THAN UUID - HTML TEMPLATE NEEDS COMPLETELY REDOING
|
||||
|
||||
/* OLD FUNCTION
|
||||
async function createRegKey(body) {
|
||||
logger.debug("registerServices.createRegKey: Incoming request");
|
||||
if (body.email) {
|
||||
@@ -35,6 +64,7 @@ async function createRegKey(body) {
|
||||
return { status: 400, errorCode: 901, errorMsg: errors[902] };
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
async function regUser(req) {
|
||||
// Add input validation
|
||||
|
||||
@@ -38,6 +38,12 @@ async function generateKey() {
|
||||
return crypt.randomUUID();
|
||||
}
|
||||
|
||||
export function generateCode(): string {
|
||||
const bytes = crypt.randomBytes(3);
|
||||
const randomNumber = bytes.readUIntBE(0, 3) % 1000000;
|
||||
return randomNumber.toString().padStart(6, '0');
|
||||
}
|
||||
|
||||
async function generateConfirmationEmail(eml: string, uuid: string) {
|
||||
try {
|
||||
const htmlTpl = await fs.readFile("mail-templates/register.html", "utf-8");
|
||||
|
||||
Reference in New Issue
Block a user