@venturekit/auth 0.0.0-dev.20260516011500 → 0.0.0-dev.20260522100701
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.
|
@@ -36,6 +36,14 @@ import type { AuthServerConfig } from './config.js';
|
|
|
36
36
|
export interface ForgotPasswordInput {
|
|
37
37
|
/** Email / username of the account whose password should be reset. */
|
|
38
38
|
email: string;
|
|
39
|
+
/**
|
|
40
|
+
* Optional callback to deliver the confirmation code in dev mode.
|
|
41
|
+
* When provided and running against cognito-local, the function
|
|
42
|
+
* calls this instead of logging to the console, so the developer
|
|
43
|
+
* can wire in their own email delivery (e.g. via `@venturekit/notify`
|
|
44
|
+
* → MailHog). Ignored in production.
|
|
45
|
+
*/
|
|
46
|
+
onSendCode?: (email: string, code: string) => Promise<void>;
|
|
39
47
|
}
|
|
40
48
|
/**
|
|
41
49
|
* Where Cognito delivered (or claims to have delivered) the
|
|
@@ -59,7 +67,16 @@ export interface ForgotPasswordResult {
|
|
|
59
67
|
* reaching this point.
|
|
60
68
|
*/
|
|
61
69
|
codeDelivery?: CodeDeliveryDetails;
|
|
70
|
+
/**
|
|
71
|
+
* Plaintext confirmation code — only populated when running against
|
|
72
|
+
* cognito-local (`vk dev`). Useful so the developer can complete the
|
|
73
|
+
* flow in a browser without checking server logs. Always `undefined`
|
|
74
|
+
* in production.
|
|
75
|
+
*/
|
|
76
|
+
devCode?: string;
|
|
62
77
|
}
|
|
78
|
+
/** Test-only — clear the dev forgot-password code store between vitest runs. */
|
|
79
|
+
export declare function _resetDevForgotCodeStoreForTesting(): void;
|
|
63
80
|
/**
|
|
64
81
|
* Initiate a password reset. Cognito sends a one-time code to the
|
|
65
82
|
* user's verified email or phone and the caller can then complete
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;
|
|
1
|
+
{"version":3,"file":"forgot-password.d.ts","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD,gFAAgF;AAChF,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,oBAAoB,CAAC,CAoD/B;AAED,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,MAAM,GAAE,gBAAyC,GAChD,OAAO,CAAC,IAAI,CAAC,CAqEf"}
|
|
@@ -32,10 +32,31 @@
|
|
|
32
32
|
* success. This helper deliberately surfaces the real outcome so the
|
|
33
33
|
* caller can decide.
|
|
34
34
|
*/
|
|
35
|
-
import {
|
|
35
|
+
import { timingSafeEqual } from 'node:crypto';
|
|
36
|
+
import { AdminSetUserPasswordCommand, ConfirmForgotPasswordCommand, ForgotPasswordCommand, } from '@aws-sdk/client-cognito-identity-provider';
|
|
36
37
|
import { loadAuthServerConfig } from './config.js';
|
|
37
38
|
import { getCognitoClient } from './cognito-client.js';
|
|
38
|
-
import { mapProviderError } from './errors.js';
|
|
39
|
+
import { AuthError, mapProviderError } from './errors.js';
|
|
40
|
+
import { generateVerificationCode, hashVerificationCode } from './verification.js';
|
|
41
|
+
// ── Dev-mode (cognito-local) helpers ────────────────────────────────
|
|
42
|
+
const DEV_CODE_TTL_MS = 10 * 60 * 1000; // 10 minutes
|
|
43
|
+
const DEV_CODE_MAX_ATTEMPTS = 5;
|
|
44
|
+
/** In-memory store for forgot-password codes when running against cognito-local. */
|
|
45
|
+
const devForgotCodeStore = new Map();
|
|
46
|
+
function isDevMode(config) {
|
|
47
|
+
return !!config.endpoint;
|
|
48
|
+
}
|
|
49
|
+
function maskEmail(email) {
|
|
50
|
+
const [local, domain] = email.split('@');
|
|
51
|
+
if (!local || !domain)
|
|
52
|
+
return email;
|
|
53
|
+
return `${local[0]}***@${domain}`;
|
|
54
|
+
}
|
|
55
|
+
/** Test-only — clear the dev forgot-password code store between vitest runs. */
|
|
56
|
+
export function _resetDevForgotCodeStoreForTesting() {
|
|
57
|
+
devForgotCodeStore.clear();
|
|
58
|
+
}
|
|
59
|
+
// ── Step 1: initiate ────────────────────────────────────────────────
|
|
39
60
|
/**
|
|
40
61
|
* Initiate a password reset. Cognito sends a one-time code to the
|
|
41
62
|
* user's verified email or phone and the caller can then complete
|
|
@@ -52,12 +73,40 @@ import { mapProviderError } from './errors.js';
|
|
|
52
73
|
* - `too_many_requests` (HTTP 429) — Cognito throttling.
|
|
53
74
|
*/
|
|
54
75
|
export async function forgotPassword(input, config = loadAuthServerConfig()) {
|
|
76
|
+
const email = input.email.toLowerCase();
|
|
77
|
+
if (isDevMode(config)) {
|
|
78
|
+
// cognito-local does not deliver emails; generate and store a
|
|
79
|
+
// code ourselves so the dev can complete the flow.
|
|
80
|
+
const code = generateVerificationCode();
|
|
81
|
+
const codeHash = hashVerificationCode(code);
|
|
82
|
+
devForgotCodeStore.set(email, {
|
|
83
|
+
codeHash,
|
|
84
|
+
expiresAt: Date.now() + DEV_CODE_TTL_MS,
|
|
85
|
+
attempts: 0,
|
|
86
|
+
});
|
|
87
|
+
if (input.onSendCode) {
|
|
88
|
+
await input.onSendCode(email, code);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// eslint-disable-next-line no-console
|
|
92
|
+
console.log(`[dev] Forgot-password code for ${email}: ${code} (expires in 10 min)`);
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
codeDelivery: {
|
|
96
|
+
destination: maskEmail(email),
|
|
97
|
+
deliveryMedium: 'EMAIL',
|
|
98
|
+
attributeName: 'email',
|
|
99
|
+
},
|
|
100
|
+
devCode: code,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Prod path — use Cognito's native ForgotPassword.
|
|
55
104
|
const client = getCognitoClient(config.region, config.endpoint);
|
|
56
105
|
let res;
|
|
57
106
|
try {
|
|
58
107
|
res = await client.send(new ForgotPasswordCommand({
|
|
59
108
|
ClientId: config.appClientId,
|
|
60
|
-
Username:
|
|
109
|
+
Username: email,
|
|
61
110
|
}));
|
|
62
111
|
}
|
|
63
112
|
catch (err) {
|
|
@@ -91,11 +140,54 @@ export async function forgotPassword(input, config = loadAuthServerConfig()) {
|
|
|
91
140
|
* - `invalid_credentials` (HTTP 401) — unknown user.
|
|
92
141
|
*/
|
|
93
142
|
export async function confirmForgotPassword(input, config = loadAuthServerConfig()) {
|
|
143
|
+
const email = input.email.toLowerCase();
|
|
144
|
+
if (isDevMode(config)) {
|
|
145
|
+
// cognito-local path: verify our locally-stored code, then set
|
|
146
|
+
// the password directly via AdminSetUserPassword.
|
|
147
|
+
const record = devForgotCodeStore.get(email);
|
|
148
|
+
if (!record) {
|
|
149
|
+
throw new AuthError('invalid_code', 'No forgot-password code outstanding — request a new one', 400);
|
|
150
|
+
}
|
|
151
|
+
if (record.expiresAt < Date.now()) {
|
|
152
|
+
devForgotCodeStore.delete(email);
|
|
153
|
+
throw new AuthError('expired_code', 'Forgot-password code expired — request a new one', 400);
|
|
154
|
+
}
|
|
155
|
+
const submittedHash = hashVerificationCode(input.code);
|
|
156
|
+
const a = Buffer.from(submittedHash, 'hex');
|
|
157
|
+
const b = Buffer.from(record.codeHash, 'hex');
|
|
158
|
+
const matches = a.length === b.length && timingSafeEqual(a, b);
|
|
159
|
+
if (!matches) {
|
|
160
|
+
// Wrong code — bump the counter; once we've hit the limit, wipe
|
|
161
|
+
// the record so the user has to request a new one (brute-force
|
|
162
|
+
// defense, since 6-digit codes only have 1M states). Mirrors the
|
|
163
|
+
// logic in verification.ts:verifyVerificationCode.
|
|
164
|
+
record.attempts += 1;
|
|
165
|
+
if (record.attempts >= DEV_CODE_MAX_ATTEMPTS) {
|
|
166
|
+
devForgotCodeStore.delete(email);
|
|
167
|
+
}
|
|
168
|
+
throw new AuthError('invalid_code', 'Invalid confirmation code', 400);
|
|
169
|
+
}
|
|
170
|
+
devForgotCodeStore.delete(email);
|
|
171
|
+
const client = getCognitoClient(config.region, config.endpoint);
|
|
172
|
+
try {
|
|
173
|
+
await client.send(new AdminSetUserPasswordCommand({
|
|
174
|
+
UserPoolId: config.userPoolId,
|
|
175
|
+
Username: email,
|
|
176
|
+
Password: input.newPassword,
|
|
177
|
+
Permanent: true,
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
throw mapProviderError(err, 'confirm_forgot_password_failed');
|
|
182
|
+
}
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
// Prod path — use Cognito's native ConfirmForgotPassword.
|
|
94
186
|
const client = getCognitoClient(config.region, config.endpoint);
|
|
95
187
|
try {
|
|
96
188
|
await client.send(new ConfirmForgotPasswordCommand({
|
|
97
189
|
ClientId: config.appClientId,
|
|
98
|
-
Username:
|
|
190
|
+
Username: email,
|
|
99
191
|
ConfirmationCode: input.code,
|
|
100
192
|
Password: input.newPassword,
|
|
101
193
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GAEtB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"forgot-password.js","sourceRoot":"","sources":["../../src/server/forgot-password.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venturekit/auth",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20260522100701",
|
|
4
4
|
"description": "Authentication and authorization for VentureKit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@venturekit/core": "0.0.0-dev.
|
|
36
|
+
"@venturekit/core": "0.0.0-dev.20260522100701",
|
|
37
37
|
"@aws-sdk/client-cognito-identity-provider": "^3.668.0",
|
|
38
38
|
"@aws-sdk/client-secrets-manager": "^3.668.0",
|
|
39
39
|
"aws-jwt-verify": "^4.0.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@venturekit/runtime": "0.0.0-dev.
|
|
42
|
+
"@venturekit/runtime": "0.0.0-dev.20260522100701"
|
|
43
43
|
},
|
|
44
44
|
"peerDependenciesMeta": {
|
|
45
45
|
"@venturekit/runtime": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@venturekit/runtime": "0.0.0-dev.
|
|
50
|
+
"@venturekit/runtime": "0.0.0-dev.20260522100701",
|
|
51
51
|
"@types/aws-lambda": "^8.10.131",
|
|
52
52
|
"@types/node": "^25.6.0",
|
|
53
53
|
"typescript": "^5.3.0"
|