From 93b20988299940791193a07631a812df2394cada Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Tue, 26 Mar 2024 13:14:10 +0100 Subject: [PATCH] refactor: Extract token generation logic to User model --- packages/backend/src/models/user.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/backend/src/models/user.js b/packages/backend/src/models/user.js index dfc68d1c..f67e1a63 100644 --- a/packages/backend/src/models/user.js +++ b/packages/backend/src/models/user.js @@ -5,6 +5,7 @@ import crypto from 'node:crypto'; import appConfig from '../config/app.js'; import { hasValidLicense } from '../helpers/license.ee.js'; import userAbility from '../helpers/user-ability.js'; +import createAuthTokenByUserId from '../helpers/create-auth-token-by-user-id.js'; import Base from './base.js'; import Connection from './connection.js'; import Execution from './execution.js'; @@ -161,6 +162,17 @@ class User extends Base { : Execution.query(); } + static async authenticate(email, password) { + const user = await User.query().findOne({ + email: email?.toLowerCase() || null, + }); + + if (user && (await user.login(password))) { + const token = createAuthTokenByUserId(user.id); + return token; + } + } + login(password) { return bcrypt.compare(password, this.password); }