From 7998b39757c052744a6466cb4bf09318377b0eea Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Tue, 2 Feb 2021 00:50:12 +0100 Subject: [PATCH] :sparkles: [Route] Register --- src/routes/api/v8/auth/login.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/routes/api/v8/auth/login.ts b/src/routes/api/v8/auth/login.ts index f2121617..92676971 100644 --- a/src/routes/api/v8/auth/login.ts +++ b/src/routes/api/v8/auth/login.ts @@ -5,6 +5,7 @@ import bcrypt from "bcrypt"; import jwt from "jsonwebtoken"; import Config from "../../../../util/Config"; import { User } from "../../../../models/User"; +import { adjustEmail } from "./register"; const router: Router = Router(); router.post( @@ -19,7 +20,9 @@ router.post( }), async (req: Request, res: Response) => { const { login, password } = req.body; - const userquery = { $or: [{ email: login }, { phone: login }] }; + + // query for user with same email or phone number + const userquery = { $or: [{ email: adjustEmail(login) }, { phone: login }] }; const user: User = await db.data .users(userquery) .get({ hash: true, id: true, user_settings: { locale: true, theme: true } }); @@ -30,6 +33,7 @@ router.post( }); } + // the salt is saved in the password refer to bcrypt docs const same_password = await bcrypt.compare(password, user.hash); if (!same_password) { throw FieldErrors({ @@ -37,7 +41,7 @@ router.post( }); } - const token = generateToken(user.id); + const token = await generateToken(user.id); // Notice this will have a different token structure, than discord // Discord header is just the user id as string, which is not possible with npm-jsonwebtoken package @@ -47,7 +51,7 @@ router.post( } ); -export function generateToken(id: bigint) { +export async function generateToken(id: bigint) { const iat = Math.floor(Date.now() / 1000); const algorithm = "HS256";