From ba9b4d5ef300fdaa503001564fdf39930e50bc74 Mon Sep 17 00:00:00 2001 From: counterweight Date: Fri, 7 Mar 2025 15:11:34 +0100 Subject: [PATCH] login service --- src/routes/apiRoutes.js | 2 -- src/services/index.js | 2 ++ src/services/loginService.js | 16 +++++++--------- src/services/nostrService.js | 4 +++- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/routes/apiRoutes.js b/src/routes/apiRoutes.js index 9ff1513..f97ae1a 100644 --- a/src/routes/apiRoutes.js +++ b/src/routes/apiRoutes.js @@ -129,8 +129,6 @@ class ApiRoutesProvider { completedLoginChallenge = await this.services.loginService.verifyLoginChallenge(signedEvent); } catch (error) { - console.log('helo5'); - console.log(error); if (error instanceof this.errors.ExpiredError) { return res.status(410).json({ success: false, diff --git a/src/services/index.js b/src/services/index.js index 04d47a3..eea745b 100644 --- a/src/services/index.js +++ b/src/services/index.js @@ -29,6 +29,8 @@ class ServicesProvider { const LoginServiceProvider = require('../services/loginService'); const loginService = new LoginServiceProvider({ + models, + errors, nostrService, invitesService, }).provide(); diff --git a/src/services/loginService.js b/src/services/loginService.js index db6b2cf..b4e74cd 100644 --- a/src/services/loginService.js +++ b/src/services/loginService.js @@ -1,11 +1,9 @@ const uuid = require('uuid'); -const models = require('../models'); - -const errors = require('../errors'); - class LoginServiceProvider { - constructor({ nostrService, invitesService }) { + constructor({ models, errors, nostrService, invitesService }) { + this.models = models; + this.errors = errors; this.nostrService = nostrService; this.invitesService = invitesService; } @@ -14,7 +12,7 @@ class LoginServiceProvider { const createLoginChallenge = async () => { const nostrChallenge = await this.nostrService.createNostrChallenge(); - return await models.LoginChallengeCreated.create({ + return await this.models.LoginChallengeCreated.create({ uuid: uuid.v7(), nostr_challenge_uuid: nostrChallenge.uuid, created_at: new Date().toISOString(), @@ -28,7 +26,7 @@ class LoginServiceProvider { const challenge = challengeTag[1]; if (await this.nostrService.hasNostrChallengeBeenCompleted(challenge)) { - throw new errors.AlreadyUsedError( + throw new this.errors.AlreadyUsedError( 'This challenge has already been used.' ); } @@ -42,13 +40,13 @@ class LoginServiceProvider { )) ) { console.log('helo4'); - throw new errors.ForbiddenError( + throw new this.errors.ForbiddenError( `Public key ${completedNostrChallenge.public_key} is not authorized.` ); } const completedLoginChallenge = - await models.LoginChallengeCompleted.create({ + await this.models.LoginChallengeCompleted.create({ uuid: uuid.v7(), nostr_challenge_completed_uuid: completedNostrChallenge.uuid, public_key: completedNostrChallenge.public_key, diff --git a/src/services/nostrService.js b/src/services/nostrService.js index f881c5c..7d87ea6 100644 --- a/src/services/nostrService.js +++ b/src/services/nostrService.js @@ -59,7 +59,9 @@ class NostrServiceProvider { const challenge = challengeTag[1]; if (!(await isNostrChallengeFresh(challenge))) { - throw this.errors.ExpiredError('Challenge expired, request new one.'); + throw new this.errors.ExpiredError( + 'Challenge expired, request new one.' + ); } if (await hasNostrChallengeBeenCompleted(challenge)) {