@adminforth/two-factors-auth 1.10.1 → 1.10.3
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
|
@@ -12,5 +12,5 @@ custom/package-lock.json
|
|
|
12
12
|
custom/package.json
|
|
13
13
|
custom/tsconfig.json
|
|
14
14
|
|
|
15
|
-
sent 57,
|
|
16
|
-
total size is 57,
|
|
15
|
+
sent 57,692 bytes received 153 bytes 115,690.00 bytes/sec
|
|
16
|
+
total size is 57,119 speedup is 0.99
|
|
@@ -179,11 +179,11 @@
|
|
|
179
179
|
await user.finishLogin();
|
|
180
180
|
} else {
|
|
181
181
|
if (usePasskey) {
|
|
182
|
-
showErrorTost(t(
|
|
183
|
-
codeError.value = '
|
|
182
|
+
showErrorTost(t(resp.error));
|
|
183
|
+
codeError.value = resp.error || t('Passkey authentication failed');
|
|
184
184
|
} else {
|
|
185
185
|
showErrorTost(t(resp.error));
|
|
186
|
-
codeError.value = resp.error;
|
|
186
|
+
codeError.value = resp.error || t('Invalid code');
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -179,11 +179,11 @@
|
|
|
179
179
|
await user.finishLogin();
|
|
180
180
|
} else {
|
|
181
181
|
if (usePasskey) {
|
|
182
|
-
showErrorTost(t(
|
|
183
|
-
codeError.value = '
|
|
182
|
+
showErrorTost(t(resp.error));
|
|
183
|
+
codeError.value = resp.error || t('Passkey authentication failed');
|
|
184
184
|
} else {
|
|
185
185
|
showErrorTost(t(resp.error));
|
|
186
|
-
codeError.value = resp.error;
|
|
186
|
+
codeError.value = resp.error || t('Invalid code');
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
}
|
package/dist/index.js
CHANGED
|
@@ -314,7 +314,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
314
314
|
}
|
|
315
315
|
const decodedPasskeysCookies = yield this.adminforth.auth.verify(passkeysCookies, 'tempPasskeyChallenge', false);
|
|
316
316
|
if (!decodedPasskeysCookies) {
|
|
317
|
-
return { error: 'Invalid passkey
|
|
317
|
+
return { error: 'Invalid passkey' };
|
|
318
318
|
}
|
|
319
319
|
const res = yield this.verifyPasskeyResponse(body.passkeyOptions, decoded.pk, decodedPasskeysCookies);
|
|
320
320
|
if (res.ok && res.passkeyConfirmed) {
|
|
@@ -429,7 +429,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
429
429
|
userVerification: ((_m = this.options.passkeys) === null || _m === void 0 ? void 0 : _m.settings.authenticatorSelection.userVerification) || "required"
|
|
430
430
|
},
|
|
431
431
|
});
|
|
432
|
-
const value = this.adminforth.auth.issueJWT({ "challenge": options.challenge }, 'tempPasskeyChallenge', '10m');
|
|
432
|
+
const value = this.adminforth.auth.issueJWT({ "challenge": options.challenge, "user_id": adminUser.pk }, 'tempPasskeyChallenge', '10m');
|
|
433
433
|
this.adminforth.auth.setCustomCookie({ response, payload: { name: "registerPasskeyTemporaryJWT", value: value, expiry: undefined, expirySeconds: 10 * 60, httpOnly: true } });
|
|
434
434
|
return { ok: true, data: options };
|
|
435
435
|
})
|
|
@@ -448,6 +448,9 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
448
448
|
if (!decodedPasskeysCookies) {
|
|
449
449
|
return { error: 'Invalid passkey token' };
|
|
450
450
|
}
|
|
451
|
+
if (decodedPasskeysCookies.user_id !== adminUser.pk) {
|
|
452
|
+
return { error: 'Invalid user' };
|
|
453
|
+
}
|
|
451
454
|
const settingsOrigin = (_b = this.options.passkeys) === null || _b === void 0 ? void 0 : _b.settings.expectedOrigin;
|
|
452
455
|
const expectedOrigin = body.origin;
|
|
453
456
|
const expectedChallenge = decodedPasskeysCookies.challenge;
|
package/index.ts
CHANGED
|
@@ -340,7 +340,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
340
340
|
}
|
|
341
341
|
const decodedPasskeysCookies = await this.adminforth.auth.verify(passkeysCookies, 'tempPasskeyChallenge', false);
|
|
342
342
|
if (!decodedPasskeysCookies) {
|
|
343
|
-
return { error: 'Invalid passkey
|
|
343
|
+
return { error: 'Invalid passkey' };
|
|
344
344
|
}
|
|
345
345
|
const res = await this.verifyPasskeyResponse(body.passkeyOptions, decoded.pk, decodedPasskeysCookies);
|
|
346
346
|
if (res.ok && res.passkeyConfirmed) {
|
|
@@ -455,7 +455,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
455
455
|
userVerification: this.options.passkeys?.settings.authenticatorSelection.userVerification || "required"
|
|
456
456
|
},
|
|
457
457
|
});
|
|
458
|
-
const value = this.adminforth.auth.issueJWT({ "challenge": options.challenge }, 'tempPasskeyChallenge', '10m');
|
|
458
|
+
const value = this.adminforth.auth.issueJWT({ "challenge": options.challenge, "user_id": adminUser.pk }, 'tempPasskeyChallenge', '10m');
|
|
459
459
|
this.adminforth.auth.setCustomCookie({response, payload: {name: "registerPasskeyTemporaryJWT", value: value, expiry: undefined, expirySeconds: 10 * 60, httpOnly: true}});
|
|
460
460
|
return { ok: true, data: options };
|
|
461
461
|
}
|
|
@@ -473,6 +473,9 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
|
|
|
473
473
|
if (!decodedPasskeysCookies) {
|
|
474
474
|
return { error: 'Invalid passkey token' };
|
|
475
475
|
}
|
|
476
|
+
if (decodedPasskeysCookies.user_id !== adminUser.pk) {
|
|
477
|
+
return { error: 'Invalid user' };
|
|
478
|
+
}
|
|
476
479
|
const settingsOrigin = this.options.passkeys?.settings.expectedOrigin;
|
|
477
480
|
const expectedOrigin = body.origin;
|
|
478
481
|
const expectedChallenge = decodedPasskeysCookies.challenge;
|