@adminforth/two-factors-auth 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build.log CHANGED
@@ -13,5 +13,5 @@ custom/package.json
13
13
  custom/tsconfig.json
14
14
  custom/utils.js
15
15
 
16
- sent 68,929 bytes received 172 bytes 138,202.00 bytes/sec
17
- total size is 68,289 speedup is 0.99
16
+ sent 69,639 bytes received 172 bytes 139,622.00 bytes/sec
17
+ total size is 69,008 speedup is 0.99
@@ -150,8 +150,11 @@
150
150
  await nextTick();
151
151
  await isCMAAvailable();
152
152
  tagOtpInputs();
153
+ console.log("Checking if device supports passkeys:", isPasskeysSupported.value);
153
154
  if (isPasskeysSupported.value === true) {
155
+ console.log("Device supports passkeys, checking if user has passkeys...");
154
156
  await checkIfUserHasPasskeys();
157
+ console.log("Does user have passkeys:", doesUserHavePasskeys.value);
155
158
  }
156
159
  document.addEventListener('focusin', handleGlobalFocusIn, true);
157
160
  focusFirstAvailableOtpInput();
@@ -190,6 +193,8 @@
190
193
  async function sendCode (value: any, factorMode: 'TOTP' | 'passkey', passkeyOptions: any) {
191
194
  inProgress.value = true;
192
195
  const usePasskey = factorMode === 'passkey';
196
+ console.log("Sending code with factorMode:", factorMode);
197
+ console.log("Passkey options:", passkeyOptions);
193
198
  const resp = await callAdminForthApi({
194
199
  method: 'POST',
195
200
  path: '/plugin/twofa/confirmLogin',
@@ -200,12 +205,15 @@
200
205
  secret: null,
201
206
  }
202
207
  })
208
+ console.log("Response from confirmLogin:", resp);
203
209
  if ( resp.allowedLogin ) {
204
210
  if ( route.meta.isPasskeysEnabled && !doesUserHavePasskeys.value ) {
205
211
  handlePasskeyAlert(route.meta.suggestionPeriod, router);
206
212
  }
213
+ console.log("Login confirmed, finishing login...");
207
214
  await user.finishLogin();
208
215
  } else {
216
+ console.log("Login not allowed, showing error:", resp.error);
209
217
  if (usePasskey) {
210
218
  showErrorTost(t(resp.error));
211
219
  codeError.value = resp.error || t('Passkey authentication failed');
@@ -269,15 +277,18 @@
269
277
 
270
278
  async function createSignInRequest() {
271
279
  let response;
280
+ console.log("Creating sign-in request for passkey...");
272
281
  try {
273
282
  response = await callAdminForthApi({
274
283
  path: `/plugin/passkeys/signInRequest`,
275
284
  method: 'POST',
276
285
  });
277
286
  } catch (error) {
287
+ console.log("Error creating sign-in request:", error);
278
288
  console.error('Error creating sign-in request:', error);
279
289
  return;
280
290
  }
291
+ console.log("Sign-in request response:", response);
281
292
  if (response.ok === true) {
282
293
  return { _options: response.data, challengeId: response.challengeId };
283
294
  } else {
@@ -150,8 +150,11 @@
150
150
  await nextTick();
151
151
  await isCMAAvailable();
152
152
  tagOtpInputs();
153
+ console.log("Checking if device supports passkeys:", isPasskeysSupported.value);
153
154
  if (isPasskeysSupported.value === true) {
155
+ console.log("Device supports passkeys, checking if user has passkeys...");
154
156
  await checkIfUserHasPasskeys();
157
+ console.log("Does user have passkeys:", doesUserHavePasskeys.value);
155
158
  }
156
159
  document.addEventListener('focusin', handleGlobalFocusIn, true);
157
160
  focusFirstAvailableOtpInput();
@@ -190,6 +193,8 @@
190
193
  async function sendCode (value: any, factorMode: 'TOTP' | 'passkey', passkeyOptions: any) {
191
194
  inProgress.value = true;
192
195
  const usePasskey = factorMode === 'passkey';
196
+ console.log("Sending code with factorMode:", factorMode);
197
+ console.log("Passkey options:", passkeyOptions);
193
198
  const resp = await callAdminForthApi({
194
199
  method: 'POST',
195
200
  path: '/plugin/twofa/confirmLogin',
@@ -200,12 +205,15 @@
200
205
  secret: null,
201
206
  }
202
207
  })
208
+ console.log("Response from confirmLogin:", resp);
203
209
  if ( resp.allowedLogin ) {
204
210
  if ( route.meta.isPasskeysEnabled && !doesUserHavePasskeys.value ) {
205
211
  handlePasskeyAlert(route.meta.suggestionPeriod, router);
206
212
  }
213
+ console.log("Login confirmed, finishing login...");
207
214
  await user.finishLogin();
208
215
  } else {
216
+ console.log("Login not allowed, showing error:", resp.error);
209
217
  if (usePasskey) {
210
218
  showErrorTost(t(resp.error));
211
219
  codeError.value = resp.error || t('Passkey authentication failed');
@@ -269,15 +277,18 @@
269
277
 
270
278
  async function createSignInRequest() {
271
279
  let response;
280
+ console.log("Creating sign-in request for passkey...");
272
281
  try {
273
282
  response = await callAdminForthApi({
274
283
  path: `/plugin/passkeys/signInRequest`,
275
284
  method: 'POST',
276
285
  });
277
286
  } catch (error) {
287
+ console.log("Error creating sign-in request:", error);
278
288
  console.error('Error creating sign-in request:', error);
279
289
  return;
280
290
  }
291
+ console.log("Sign-in request response:", response);
281
292
  if (response.ok === true) {
282
293
  return { _options: response.data, challengeId: response.challengeId };
283
294
  } else {
package/dist/index.js CHANGED
@@ -343,15 +343,21 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
343
343
  let verified = null;
344
344
  if (body.usePasskey && this.options.passkeys) {
345
345
  // passkeys are enabled and user wants to use them
346
+ console.log("Using passkey for 2FA verification");
346
347
  const passkeysCookies = this.adminforth.auth.getCustomCookie({ cookies: cookies, name: `passkeyLoginTemporaryJWT` });
348
+ console.log("Passkey cookies:", passkeysCookies);
347
349
  if (!passkeysCookies) {
348
350
  return { error: 'Passkey token is required' };
349
351
  }
352
+ console.log("Verifying passkey cookies");
350
353
  const decodedPasskeysCookies = yield this.adminforth.auth.verify(passkeysCookies, 'tempLoginPasskeyChallenge', false);
351
354
  if (!decodedPasskeysCookies) {
352
355
  return { error: 'Invalid passkey' };
353
356
  }
357
+ console.log("Passkey cookies decoded:", decodedPasskeysCookies);
358
+ console.log("Verifying passkey response");
354
359
  const res = yield this.verifyPasskeyResponse(body.passkeyOptions, decoded.pk, decodedPasskeysCookies);
360
+ console.log("Passkey response verification result:", res);
355
361
  if (res.ok && res.passkeyConfirmed) {
356
362
  verified = true;
357
363
  }
package/index.ts CHANGED
@@ -383,15 +383,21 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
383
383
  let verified = null;
384
384
  if (body.usePasskey && this.options.passkeys) {
385
385
  // passkeys are enabled and user wants to use them
386
+ console.log("Using passkey for 2FA verification");
386
387
  const passkeysCookies = this.adminforth.auth.getCustomCookie({cookies: cookies, name: `passkeyLoginTemporaryJWT`});
388
+ console.log("Passkey cookies:", passkeysCookies);
387
389
  if (!passkeysCookies) {
388
390
  return { error: 'Passkey token is required' };
389
391
  }
392
+ console.log("Verifying passkey cookies");
390
393
  const decodedPasskeysCookies = await this.adminforth.auth.verify(passkeysCookies, 'tempLoginPasskeyChallenge', false);
391
394
  if (!decodedPasskeysCookies) {
392
395
  return { error: 'Invalid passkey' };
393
396
  }
397
+ console.log("Passkey cookies decoded:", decodedPasskeysCookies);
398
+ console.log("Verifying passkey response");
394
399
  const res = await this.verifyPasskeyResponse(body.passkeyOptions, decoded.pk, decodedPasskeysCookies);
400
+ console.log("Passkey response verification result:", res);
395
401
  if (res.ok && res.passkeyConfirmed) {
396
402
  verified = true;
397
403
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminforth/two-factors-auth",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "AdminForth plugin for two factors authentication",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",