@bitblit/ratchet-warden-server 5.1.690-alpha → 5.1.691-alpha

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.
@@ -18,16 +18,16 @@ export class WardenService {
18
18
  cacheAuthorizer;
19
19
  constructor(inOptions) {
20
20
  this.inOptions = inOptions;
21
- RequireRatchet.notNullOrUndefined(inOptions, 'options');
22
- RequireRatchet.notNullOrUndefined(inOptions.relyingPartyName, 'options.relyingPartyName');
23
- RequireRatchet.notNullUndefinedOrEmptyArray(inOptions.allowedOrigins, 'options.allowedOrigins');
24
- RequireRatchet.notNullOrUndefined(inOptions.storageProvider, 'options.storageProvider');
25
- RequireRatchet.notNullOrUndefined(inOptions.jwtRatchet, 'options.jwtRatchet');
26
- RequireRatchet.notNullUndefinedOrEmptyArray(inOptions.singleUseCodeProviders, 'options.singleUseCodeProviders');
21
+ RequireRatchet.notNullOrUndefined(inOptions, "options");
22
+ RequireRatchet.notNullOrUndefined(inOptions.relyingPartyName, "options.relyingPartyName");
23
+ RequireRatchet.notNullUndefinedOrEmptyArray(inOptions.allowedOrigins, "options.allowedOrigins");
24
+ RequireRatchet.notNullOrUndefined(inOptions.storageProvider, "options.storageProvider");
25
+ RequireRatchet.notNullOrUndefined(inOptions.jwtRatchet, "options.jwtRatchet");
26
+ RequireRatchet.notNullUndefinedOrEmptyArray(inOptions.singleUseCodeProviders, "options.singleUseCodeProviders");
27
27
  this.opts = Object.assign({
28
28
  userTokenDataProvider: new WardenDefaultUserDecorationProvider(),
29
29
  eventProcessor: new WardenNoOpEventProcessingProvider(),
30
- sendMagicLinkCommandValidator: new WardenDefaultSendMagicLinkCommandValidator(),
30
+ sendMagicLinkCommandValidator: new WardenDefaultSendMagicLinkCommandValidator()
31
31
  }, inOptions);
32
32
  this.cacheAuthorizer = new WardenAuthorizer(inOptions);
33
33
  }
@@ -49,7 +49,7 @@ export class WardenService {
49
49
  const cmd = JSON.parse(cmdString);
50
50
  const resp = await this.processCommandToResponse(cmd, origin, loggedInUserId);
51
51
  if (resp === null) {
52
- Logger.warn('Response was null for %s %s %s', cmdString, origin, loggedInUserId);
52
+ Logger.warn("Response was null for %s %s %s", cmdString, origin, loggedInUserId);
53
53
  }
54
54
  else {
55
55
  rval = JSON.stringify(resp);
@@ -57,7 +57,7 @@ export class WardenService {
57
57
  }
58
58
  catch (err) {
59
59
  const errString = ErrorRatchet.safeStringifyErr(err);
60
- Logger.error('Failed %s : %j', errString, cmdString, err);
60
+ Logger.error("Failed %s : %j", errString, cmdString, err);
61
61
  rval = JSON.stringify({ error: errString });
62
62
  }
63
63
  return rval;
@@ -65,7 +65,7 @@ export class WardenService {
65
65
  async processCommandToResponse(cmd, origin, loggedInUserId) {
66
66
  let rval = null;
67
67
  if (cmd) {
68
- Logger.info('Processing command : UserID: %s Origin: %s Command: %j', loggedInUserId, origin, cmd);
68
+ Logger.info("Processing command : UserID: %s Origin: %s Command: %j", loggedInUserId, origin, cmd);
69
69
  if (cmd.sendExpiringValidationToken) {
70
70
  rval = { sendExpiringValidationToken: await this.sendExpiringValidationToken(cmd.sendExpiringValidationToken, origin) };
71
71
  }
@@ -81,10 +81,10 @@ export class WardenService {
81
81
  }
82
82
  else if (cmd.sendMagicLink) {
83
83
  if (cmd?.sendMagicLink?.contactLookup && cmd?.sendMagicLink?.contact) {
84
- throw ErrorRatchet.fErr('You may not specify both contact and contactLookup');
84
+ throw ErrorRatchet.fErr("You may not specify both contact and contactLookup");
85
85
  }
86
86
  if (!cmd?.sendMagicLink?.contactLookup && !cmd?.sendMagicLink?.contact) {
87
- throw ErrorRatchet.fErr('You must not specify either contact and contactLookup');
87
+ throw ErrorRatchet.fErr("You must not specify either contact and contactLookup");
88
88
  }
89
89
  if (cmd.sendMagicLink.contactLookup) {
90
90
  const entry = await this.findEntryById(cmd.sendMagicLink.contactLookup.userId);
@@ -99,7 +99,7 @@ export class WardenService {
99
99
  cmd.sendMagicLink.contactLookup = null;
100
100
  }
101
101
  if (!cmd.sendMagicLink.contact) {
102
- throw ErrorRatchet.fErr('Could not find contract entry either directly or by lookup');
102
+ throw ErrorRatchet.fErr("Could not find contract entry either directly or by lookup");
103
103
  }
104
104
  const loggedInUser = StringRatchet.trimToNull(loggedInUserId)
105
105
  ? await this.opts.storageProvider.findEntryById(loggedInUserId)
@@ -107,19 +107,19 @@ export class WardenService {
107
107
  await this.opts.sendMagicLinkCommandValidator.allowMagicLinkCommand(cmd.sendMagicLink, origin, loggedInUser);
108
108
  const ttlSeconds = cmd?.sendMagicLink?.ttlSeconds || 300;
109
109
  rval = {
110
- sendMagicLink: await this.sendMagicLink(cmd.sendMagicLink.contact, cmd.sendMagicLink.overrideDestinationContact, this.opts.relyingPartyName, cmd.sendMagicLink.landingUrl, cmd.sendMagicLink.meta, ttlSeconds, cmd.sendMagicLink.customTemplate),
110
+ sendMagicLink: await this.sendMagicLink(cmd.sendMagicLink.contact, cmd.sendMagicLink.overrideDestinationContact, this.opts.relyingPartyName, cmd.sendMagicLink.landingUrl, cmd.sendMagicLink.meta, ttlSeconds, cmd.sendMagicLink.customTemplate)
111
111
  };
112
112
  }
113
113
  else if (cmd.generateWebAuthnRegistrationChallengeForLoggedInUser) {
114
114
  if (!StringRatchet.trimToNull(loggedInUserId)) {
115
- ErrorRatchet.throwFormattedErr('This requires a logged in user');
115
+ ErrorRatchet.throwFormattedErr("This requires a logged in user");
116
116
  }
117
117
  const tmp = await this.generateWebAuthnRegistrationChallengeForLoggedInUser(loggedInUserId, origin);
118
118
  rval = { generateWebAuthnRegistrationChallengeForLoggedInUser: { dataAsJson: JSON.stringify(tmp) } };
119
119
  }
120
120
  else if (cmd.addContactToLoggedInUser) {
121
121
  if (!WardenUtils.validContact(cmd.addContactToLoggedInUser)) {
122
- ErrorRatchet.throwFormattedErr('Cannot add, invalid contact %j', cmd.addContactToLoggedInUser);
122
+ ErrorRatchet.throwFormattedErr("Cannot add, invalid contact %j", cmd.addContactToLoggedInUser);
123
123
  }
124
124
  else {
125
125
  const out = await this.addContactMethodToUser(loggedInUserId, cmd.addContactToLoggedInUser);
@@ -128,7 +128,7 @@ export class WardenService {
128
128
  }
129
129
  else if (cmd.addWebAuthnRegistrationToLoggedInUser) {
130
130
  if (!StringRatchet.trimToNull(loggedInUserId)) {
131
- ErrorRatchet.throwFormattedErr('This requires a logged in user');
131
+ ErrorRatchet.throwFormattedErr("This requires a logged in user");
132
132
  }
133
133
  const data = JSON.parse(cmd.addWebAuthnRegistrationToLoggedInUser.webAuthn.dataAsJson);
134
134
  const out = await this.storeAuthnRegistration(loggedInUserId, origin, cmd.addWebAuthnRegistrationToLoggedInUser.applicationName, cmd.addWebAuthnRegistrationToLoggedInUser.deviceLabel, data);
@@ -139,25 +139,25 @@ export class WardenService {
139
139
  rval = { error: out.error };
140
140
  }
141
141
  else {
142
- rval = { error: 'Cannot happen - neither user nor error set' };
142
+ rval = { error: "Cannot happen - neither user nor error set" };
143
143
  }
144
144
  }
145
145
  else if (cmd.removeWebAuthnRegistration) {
146
146
  const modified = await this.removeSingleWebAuthnRegistration(cmd.removeWebAuthnRegistration.userId, cmd.removeWebAuthnRegistration.credentialId);
147
147
  rval = {
148
- removeWebAuthnRegistration: WardenUtils.stripWardenEntryToSummary(modified),
148
+ removeWebAuthnRegistration: WardenUtils.stripWardenEntryToSummary(modified)
149
149
  };
150
150
  }
151
151
  else if (cmd.removeWebAuthnRegistrationFromLoggedInUser) {
152
152
  const modified = await this.removeSingleWebAuthnRegistration(loggedInUserId, cmd.removeWebAuthnRegistrationFromLoggedInUser);
153
153
  rval = {
154
- removeWebAuthnRegistrationFromLoggedInUser: WardenUtils.stripWardenEntryToSummary(modified),
154
+ removeWebAuthnRegistrationFromLoggedInUser: WardenUtils.stripWardenEntryToSummary(modified)
155
155
  };
156
156
  }
157
157
  else if (cmd.removeContactFromLoggedInUser) {
158
158
  const output = await this.removeContactMethodFromUser(loggedInUserId, cmd.removeContactFromLoggedInUser);
159
159
  rval = {
160
- removeContactFromLoggedInUser: WardenUtils.stripWardenEntryToSummary(output),
160
+ removeContactFromLoggedInUser: WardenUtils.stripWardenEntryToSummary(output)
161
161
  };
162
162
  }
163
163
  else if (cmd.performLogin) {
@@ -176,12 +176,12 @@ export class WardenService {
176
176
  const output = {
177
177
  request: loginData,
178
178
  userId: user.userId,
179
- jwtToken: jwtToken,
179
+ jwtToken: jwtToken
180
180
  };
181
181
  rval = { performLogin: output };
182
182
  }
183
183
  else {
184
- rval = { error: 'Login failed' };
184
+ rval = { error: "Login failed" };
185
185
  }
186
186
  }
187
187
  else if (cmd.refreshJwtToken) {
@@ -197,7 +197,7 @@ export class WardenService {
197
197
  };
198
198
  const newToken = await this.opts.jwtRatchet.createTokenString(wardenToken, decoration.userTokenExpirationSeconds);
199
199
  rval = {
200
- refreshJwtToken: newToken,
200
+ refreshJwtToken: newToken
201
201
  };
202
202
  }
203
203
  else if (cmd.exportWebAuthnRegistrationEntryForLoggedInUser) {
@@ -212,7 +212,7 @@ export class WardenService {
212
212
  }
213
213
  }
214
214
  else {
215
- rval = { error: 'No command sent' };
215
+ rval = { error: "No command sent" };
216
216
  }
217
217
  return rval;
218
218
  }
@@ -222,15 +222,20 @@ export class WardenService {
222
222
  if (ent) {
223
223
  const webAuth = ent.webAuthnAuthenticators.find(w => w.origin === origin);
224
224
  if (webAuth) {
225
- const s1 = JSON.stringify(webAuth);
225
+ const expectedChallenge = await this.opts.storageProvider.fetchCurrentUserChallenge(userId, origin);
226
+ const token = {
227
+ entry: webAuth,
228
+ challenge: expectedChallenge
229
+ };
230
+ const s1 = JSON.stringify(token);
226
231
  rval = Base64Ratchet.encodeStringToBase64String(s1);
227
232
  }
228
233
  else {
229
- Logger.warn('Could not export webauthn - no such origin');
234
+ Logger.warn("Could not export webauthn - no such origin");
230
235
  }
231
236
  }
232
237
  else {
233
- Logger.warn('Could not export webauthn - no such user id');
238
+ Logger.warn("Could not export webauthn - no such user id");
234
239
  }
235
240
  return rval;
236
241
  }
@@ -240,18 +245,21 @@ export class WardenService {
240
245
  if (ent) {
241
246
  const s1 = Base64Ratchet.base64StringToString(token);
242
247
  const newEntry = JSON.parse(s1);
243
- const old = ent.webAuthnAuthenticators.find(w => w.origin === newEntry.origin);
248
+ const old = ent.webAuthnAuthenticators.find(w => w.origin === newEntry.entry.origin);
244
249
  if (old) {
245
- Logger.warn('Removing existing entry %j', old);
246
- ent.webAuthnAuthenticators = ent.webAuthnAuthenticators.filter(w => w.origin !== newEntry.origin);
250
+ Logger.warn("Removing existing entry %j", old);
251
+ ent.webAuthnAuthenticators = ent.webAuthnAuthenticators.filter(w => w.origin !== newEntry.entry.origin);
247
252
  }
248
- ent.webAuthnAuthenticators.push(newEntry);
253
+ ent.webAuthnAuthenticators.push(newEntry.entry);
249
254
  await this.opts.storageProvider.saveEntry(ent);
250
- Logger.info('Wrote ok');
255
+ if (newEntry.challenge) {
256
+ await this.opts.storageProvider.updateUserChallenge(userId, newEntry.entry.origin, newEntry.challenge);
257
+ }
258
+ Logger.info("Wrote ok");
251
259
  rval = true;
252
260
  }
253
261
  else {
254
- Logger.warn('Could not export webauthn - no such user id');
262
+ Logger.warn("Could not export webauthn - no such user id");
255
263
  }
256
264
  return rval;
257
265
  }
@@ -269,34 +277,34 @@ export class WardenService {
269
277
  singleUseCodeProvider(contact, requireMagicLinkSupport, returnNullIfNoProviders) {
270
278
  const rval = this.opts.singleUseCodeProviders.find((s) => s.handlesContactType(contact.type) && (!requireMagicLinkSupport || s.createCodeAndSendMagicLink));
271
279
  if (!rval && !returnNullIfNoProviders) {
272
- throw ErrorRatchet.fErr('Cannot find a single use code provider for contact type : %s', contact.type);
280
+ throw ErrorRatchet.fErr("Cannot find a single use code provider for contact type : %s", contact.type);
273
281
  }
274
282
  return rval;
275
283
  }
276
284
  async sendMagicLink(contact, overrideDestinationContact, relyingPartyName, landingUrl, metaIn, ttlSeconds, customTemplate) {
277
285
  let rval = false;
278
- RequireRatchet.notNullOrUndefined(contact, 'contact');
279
- RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(landingUrl, 'landingUrl');
280
- RequireRatchet.true(this.urlIsOnAllowedOrigin(landingUrl), 'landingUrl is not on an allowed origin for redirect');
286
+ RequireRatchet.notNullOrUndefined(contact, "contact");
287
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(landingUrl, "landingUrl");
288
+ RequireRatchet.true(this.urlIsOnAllowedOrigin(landingUrl), "landingUrl is not on an allowed origin for redirect");
281
289
  if (contact?.type && StringRatchet.trimToNull(contact?.value)) {
282
290
  const prov = this.singleUseCodeProvider(contact, true);
283
291
  rval = await prov.createCodeAndSendMagicLink(contact, relyingPartyName, landingUrl, metaIn, ttlSeconds, overrideDestinationContact, customTemplate);
284
292
  }
285
293
  else {
286
- ErrorRatchet.throwFormattedErr('Cannot send - invalid contact %j', contact);
294
+ ErrorRatchet.throwFormattedErr("Cannot send - invalid contact %j", contact);
287
295
  }
288
296
  return rval;
289
297
  }
290
298
  async createAccountByThirdParty(thirdParty, origin, inLabel) {
291
299
  let rval = null;
292
- RequireRatchet.notNullOrUndefined(thirdParty, 'thirdParty');
293
- RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(thirdParty.thirdParty, 'thirdParty');
294
- RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(thirdParty.thirdPartyId, 'thirdPartyId');
300
+ RequireRatchet.notNullOrUndefined(thirdParty, "thirdParty");
301
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(thirdParty.thirdParty, "thirdParty");
302
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(thirdParty.thirdPartyId, "thirdPartyId");
295
303
  const old = await this.opts.storageProvider.findEntryByThirdPartyId(thirdParty.thirdParty, thirdParty.thirdPartyId);
296
304
  if (old) {
297
- ErrorRatchet.throwFormattedErr('Cannot create - account already exists for %j', thirdParty);
305
+ ErrorRatchet.throwFormattedErr("Cannot create - account already exists for %j", thirdParty);
298
306
  }
299
- const label = inLabel || thirdParty.thirdParty + ' ' + thirdParty.thirdPartyId;
307
+ const label = inLabel || thirdParty.thirdParty + " " + thirdParty.thirdPartyId;
300
308
  const newUser = new WardenEntryBuilder(label).withThirdPartyAuthentication([thirdParty]).entry;
301
309
  rval = await this.opts.storageProvider.saveEntry(newUser);
302
310
  return rval;
@@ -306,17 +314,17 @@ export class WardenService {
306
314
  if (WardenUtils.validContact(contact)) {
307
315
  const old = await this.opts.storageProvider.findEntryByContact(contact);
308
316
  if (old) {
309
- ErrorRatchet.throwFormattedErr('Cannot create - account already exists for %j', contact);
317
+ ErrorRatchet.throwFormattedErr("Cannot create - account already exists for %j", contact);
310
318
  }
311
319
  const newUser = new WardenEntryBuilder(label || contact.value).withContacts([contact]).withTags(tags).entry;
312
320
  rval = await this.opts.storageProvider.saveEntry(newUser);
313
321
  if (sendCode) {
314
- Logger.info('New user %j created and send requested - sending', rval);
322
+ Logger.info("New user %j created and send requested - sending", rval);
315
323
  await this.sendExpiringValidationToken(contact, origin);
316
324
  }
317
325
  }
318
326
  else {
319
- ErrorRatchet.throwFormattedErr('Cannot create - invalid contact (missing or invalid fields)');
327
+ ErrorRatchet.throwFormattedErr("Cannot create - invalid contact (missing or invalid fields)");
320
328
  }
321
329
  return rval;
322
330
  }
@@ -332,18 +340,18 @@ export class WardenService {
332
340
  if (StringRatchet.trimToNull(userId) && WardenUtils.validContact(contact)) {
333
341
  const otherUser = await this.opts.storageProvider.findEntryByContact(contact);
334
342
  if (otherUser && otherUser.userId !== userId) {
335
- ErrorRatchet.throwFormattedErr('Cannot add contact to this user, another user already has that contact');
343
+ ErrorRatchet.throwFormattedErr("Cannot add contact to this user, another user already has that contact");
336
344
  }
337
345
  const curUser = await this.opts.storageProvider.findEntryById(userId);
338
346
  if (!curUser) {
339
- ErrorRatchet.throwFormattedErr('Cannot add contact to this user, user does not exist');
347
+ ErrorRatchet.throwFormattedErr("Cannot add contact to this user, user does not exist");
340
348
  }
341
349
  curUser.contactMethods.push(contact);
342
350
  await this.opts.storageProvider.saveEntry(curUser);
343
351
  rval = true;
344
352
  }
345
353
  else {
346
- ErrorRatchet.throwFormattedErr('Cannot add - invalid config : %s %j', userId, contact);
354
+ ErrorRatchet.throwFormattedErr("Cannot add - invalid config : %s %j", userId, contact);
347
355
  }
348
356
  return rval;
349
357
  }
@@ -352,32 +360,32 @@ export class WardenService {
352
360
  if (StringRatchet.trimToNull(userId) && WardenUtils.validContact(contact)) {
353
361
  const curUser = await this.opts.storageProvider.findEntryById(userId);
354
362
  if (!curUser) {
355
- ErrorRatchet.throwFormattedErr('Cannot remove contact from this user, user does not exist');
363
+ ErrorRatchet.throwFormattedErr("Cannot remove contact from this user, user does not exist");
356
364
  }
357
365
  curUser.contactMethods = (curUser.contactMethods || []).filter((s) => s.type !== contact.type || s.value !== contact.value);
358
366
  if (curUser.contactMethods.length === 0) {
359
- ErrorRatchet.throwFormattedErr('Cannot remove the last contact method from a user');
367
+ ErrorRatchet.throwFormattedErr("Cannot remove the last contact method from a user");
360
368
  }
361
369
  await this.opts.storageProvider.saveEntry(curUser);
362
370
  rval = await this.opts.storageProvider.findEntryById(userId);
363
371
  }
364
372
  else {
365
- ErrorRatchet.throwFormattedErr('Cannot add - invalid config : %s %j', userId, contact);
373
+ ErrorRatchet.throwFormattedErr("Cannot add - invalid config : %s %j", userId, contact);
366
374
  }
367
375
  return rval;
368
376
  }
369
377
  async generateWebAuthnRegistrationChallengeForLoggedInUser(userId, origin) {
370
378
  if (!origin || !this.opts.allowedOrigins.includes(origin)) {
371
- throw new Error('Invalid origin : ' + origin);
379
+ throw new Error("Invalid origin : " + origin);
372
380
  }
373
381
  const asUrl = new URL(origin);
374
382
  const rpID = asUrl.hostname;
375
383
  const entry = await this.opts.storageProvider.findEntryById(userId);
376
384
  if (!entry) {
377
- throw ErrorRatchet.fErr('Cannot generateWebAuthnRegistrationChallengeForLoggedInUser - no user %s / %s', userId, origin);
385
+ throw ErrorRatchet.fErr("Cannot generateWebAuthnRegistrationChallengeForLoggedInUser - no user %s / %s", userId, origin);
378
386
  }
379
387
  if (!entry?.webAuthnAuthenticators?.length) {
380
- Logger.info('Entry has no webAuthnAuthenticators');
388
+ Logger.info("Entry has no webAuthnAuthenticators");
381
389
  entry.webAuthnAuthenticators = [];
382
390
  }
383
391
  const options = await generateRegistrationOptions({
@@ -385,67 +393,67 @@ export class WardenService {
385
393
  rpID: rpID,
386
394
  userID: StringRatchet.stringToUint8Array(entry.userId),
387
395
  userName: entry.userLabel,
388
- attestationType: 'none',
396
+ attestationType: "none",
389
397
  excludeCredentials: entry.webAuthnAuthenticators.map((authenticator) => ({
390
398
  id: authenticator.credentialPublicKeyBase64,
391
- transports: authenticator.transports,
392
- })),
399
+ transports: authenticator.transports
400
+ }))
393
401
  });
394
402
  await this.opts.storageProvider.updateUserChallenge(entry.userId, rpID, options.challenge);
395
403
  return options;
396
404
  }
397
405
  async storeAuthnRegistration(userId, origin, applicationName, deviceLabel, data) {
398
- Logger.info('Store authn data : %j', data);
406
+ Logger.info("Store authn data : %j", data);
399
407
  let rval = null;
400
408
  try {
401
409
  if (!origin || !this.opts.allowedOrigins.includes(origin)) {
402
- throw new Error('Invalid origin : ' + origin);
410
+ throw new Error("Invalid origin : " + origin);
403
411
  }
404
412
  const asUrl = new URL(origin);
405
413
  const rpID = asUrl.hostname;
406
414
  const user = await this.opts.storageProvider.findEntryById(userId);
407
415
  if (!user) {
408
- throw ErrorRatchet.fErr('Cannot storeAuthnRegistration - no user %s / %s', userId, origin);
416
+ throw ErrorRatchet.fErr("Cannot storeAuthnRegistration - no user %s / %s", userId, origin);
409
417
  }
410
418
  const expectedChallenge = await this.opts.storageProvider.fetchCurrentUserChallenge(user.userId, rpID);
411
419
  const vrOpts = {
412
420
  response: data,
413
421
  expectedChallenge: expectedChallenge,
414
422
  expectedOrigin: origin,
415
- expectedRPID: rpID,
423
+ expectedRPID: rpID
416
424
  };
417
- Logger.info('Calling verifyRegistrationResponse: %j', vrOpts);
425
+ Logger.info("Calling verifyRegistrationResponse: %j", vrOpts);
418
426
  const verification = await verifyRegistrationResponse(vrOpts);
419
- Logger.info('verifyRegistrationResponse Result : %j', verification);
427
+ Logger.info("verifyRegistrationResponse Result : %j", verification);
420
428
  rval = {
421
429
  updatedEntry: null,
422
430
  registrationResponseId: data.id,
423
- result: verification.verified ? WardenStoreRegistrationResponseType.Verified : WardenStoreRegistrationResponseType.Failed,
431
+ result: verification.verified ? WardenStoreRegistrationResponseType.Verified : WardenStoreRegistrationResponseType.Failed
424
432
  };
425
433
  if (rval.result === WardenStoreRegistrationResponseType.Verified) {
426
- Logger.info('Storing registration');
434
+ Logger.info("Storing registration");
427
435
  const newAuth = {
428
436
  origin: origin,
429
- applicationName: applicationName || 'Unknown Application',
430
- deviceLabel: deviceLabel || 'Unknown Device',
437
+ applicationName: applicationName || "Unknown Application",
438
+ deviceLabel: deviceLabel || "Unknown Device",
431
439
  counter: verification.registrationInfo.credential.counter,
432
440
  credentialBackedUp: verification.registrationInfo.credentialBackedUp,
433
441
  credentialDeviceType: verification.registrationInfo.credentialDeviceType,
434
442
  credentialIdBase64: verification.registrationInfo.credential.id,
435
- credentialPublicKeyBase64: Base64Ratchet.uint8ArrayToBase64UrlString(verification.registrationInfo.credential.publicKey),
443
+ credentialPublicKeyBase64: Base64Ratchet.uint8ArrayToBase64UrlString(verification.registrationInfo.credential.publicKey)
436
444
  };
437
445
  user.webAuthnAuthenticators = (user.webAuthnAuthenticators || []).filter((wa) => wa.credentialIdBase64 !== newAuth.credentialIdBase64);
438
446
  user.webAuthnAuthenticators.push(newAuth);
439
447
  const storedUser = await this.opts.storageProvider.saveEntry(user);
440
448
  rval.updatedEntry = storedUser;
441
- Logger.info('Stored auth : %j', storedUser);
449
+ Logger.info("Stored auth : %j", storedUser);
442
450
  }
443
451
  }
444
452
  catch (err) {
445
453
  rval = {
446
454
  registrationResponseId: data.id,
447
455
  result: WardenStoreRegistrationResponseType.Error,
448
- error: ErrorRatchet.safeStringifyErr(err),
456
+ error: ErrorRatchet.safeStringifyErr(err)
449
457
  };
450
458
  }
451
459
  return rval;
@@ -458,21 +466,21 @@ export class WardenService {
458
466
  async generateWebAuthnAuthenticationChallenge(user, origin) {
459
467
  const userAuthenticators = user.webAuthnAuthenticators;
460
468
  if (!origin || !this.opts.allowedOrigins.includes(origin)) {
461
- throw new Error('Invalid origin : ' + origin);
469
+ throw new Error("Invalid origin : " + origin);
462
470
  }
463
471
  const asUrl = new URL(origin);
464
472
  const rpID = asUrl.hostname;
465
473
  const out = userAuthenticators.map((authenticator) => {
466
474
  const next = {
467
475
  id: authenticator.credentialIdBase64,
468
- transports: authenticator.transports,
476
+ transports: authenticator.transports
469
477
  };
470
478
  return next;
471
479
  });
472
480
  const opts = {
473
481
  rpID: rpID,
474
482
  allowCredentials: out,
475
- userVerification: 'preferred',
483
+ userVerification: "preferred"
476
484
  };
477
485
  const options = await generateAuthenticationOptions(opts);
478
486
  await this.opts.storageProvider.updateUserChallenge(user.userId, rpID, options.challenge);
@@ -485,16 +493,16 @@ export class WardenService {
485
493
  rval = await prov.createAndSendNewCode(request, this.opts.relyingPartyName, origin);
486
494
  }
487
495
  else {
488
- ErrorRatchet.throwFormattedErr('Cannot send - invalid request %j', request);
496
+ ErrorRatchet.throwFormattedErr("Cannot send - invalid request %j", request);
489
497
  }
490
498
  return rval;
491
499
  }
492
500
  async processLogin(request, origin) {
493
- Logger.info('Processing login : %s : %j', origin, request);
501
+ Logger.info("Processing login : %s : %j", origin, request);
494
502
  let rval = null;
495
503
  const requestErrors = WardenUtils.loginRequestErrors(request);
496
504
  if (requestErrors.length > 0) {
497
- throw ErrorRatchet.fErr('Invalid login request : %j', requestErrors);
505
+ throw ErrorRatchet.fErr("Invalid login request : %j", requestErrors);
498
506
  }
499
507
  if (request.type === WardenLoginRequestType.ThirdParty) {
500
508
  const provider = (this.options.thirdPartyAuthenticationProviders ?? [])
@@ -504,21 +512,21 @@ export class WardenService {
504
512
  if (auth) {
505
513
  rval = await this.opts.storageProvider.findEntryByThirdPartyId(auth.thirdParty, auth.thirdPartyId);
506
514
  if (!rval && request.createUserIfMissing) {
507
- Logger.info('Found no existing user for %j, creating', auth);
508
- let label = auth.thirdParty + ' ' + auth.thirdPartyId;
515
+ Logger.info("Found no existing user for %j, creating", auth);
516
+ let label = auth.thirdParty + " " + auth.thirdPartyId;
509
517
  if (provider.extractUserLabelFromAuthentication) {
510
518
  label = await provider.extractUserLabelFromAuthentication(auth);
511
519
  }
512
520
  rval = await this.createAccountByThirdParty(auth, origin, label);
513
- Logger.info('Finished create, new id is %s', rval.userId);
521
+ Logger.info("Finished create, new id is %s", rval.userId);
514
522
  }
515
523
  }
516
524
  else {
517
- Logger.warn('Authentication failed for %j', request.thirdPartyToken, request.createUserIfMissing);
525
+ Logger.warn("Authentication failed for %j", request.thirdPartyToken, request.createUserIfMissing);
518
526
  }
519
527
  }
520
528
  else {
521
- Logger.warn('Could not find any provider to handle third party token %j', request.thirdPartyToken);
529
+ Logger.warn("Could not find any provider to handle third party token %j", request.thirdPartyToken);
522
530
  }
523
531
  }
524
532
  else {
@@ -526,13 +534,13 @@ export class WardenService {
526
534
  ? await this.opts.storageProvider.findEntryById(request?.userId)
527
535
  : await this.opts.storageProvider.findEntryByContact(request.contact);
528
536
  if (!user) {
529
- Logger.info('User not found, and createUserIfMissing=%s / %j', request.createUserIfMissing, request.contact);
537
+ Logger.info("User not found, and createUserIfMissing=%s / %j", request.createUserIfMissing, request.contact);
530
538
  if (request.createUserIfMissing && request.contact) {
531
539
  user = await this.createAccount(request.contact, origin);
532
- Logger.info('Finished create, new id is %s', user.userId);
540
+ Logger.info("Finished create, new id is %s", user.userId);
533
541
  }
534
542
  if (!user) {
535
- ErrorRatchet.throwFormattedErr('No user found for %j / %s', request?.contact, request?.userId);
543
+ ErrorRatchet.throwFormattedErr("No user found for %j / %s", request?.contact, request?.userId);
536
544
  }
537
545
  }
538
546
  let loginSuccess = false;
@@ -543,7 +551,7 @@ export class WardenService {
543
551
  const prov = this.singleUseCodeProvider(request.contact, false);
544
552
  loginSuccess = await prov.checkCode(request.contact.value, request.expiringToken);
545
553
  if (!loginSuccess) {
546
- ErrorRatchet.throwFormattedErr('Cannot login - token is invalid for this user');
554
+ ErrorRatchet.throwFormattedErr("Cannot login - token is invalid for this user");
547
555
  }
548
556
  }
549
557
  rval = loginSuccess ? user : null;
@@ -558,7 +566,7 @@ export class WardenService {
558
566
  const auth = (user.webAuthnAuthenticators || []).find((s) => s.credentialIdBase64 === data.id);
559
567
  if (!auth) {
560
568
  const allIds = (user.webAuthnAuthenticators || []).map((s) => s.credentialIdBase64);
561
- throw ErrorRatchet.fErr('Could not find authenticator %s (%s) for user %s (avail were : %j)', data.id, data.id, user.userId, allIds);
569
+ throw ErrorRatchet.fErr("Could not find authenticator %s (%s) for user %s (avail were : %j)", data.id, data.id, user.userId, allIds);
562
570
  }
563
571
  const vrOpts = {
564
572
  response: data,
@@ -568,8 +576,8 @@ export class WardenService {
568
576
  credential: {
569
577
  counter: auth.counter,
570
578
  id: auth.credentialIdBase64,
571
- publicKey: Base64Ratchet.base64UrlStringToBytes(auth.credentialPublicKeyBase64),
572
- },
579
+ publicKey: Base64Ratchet.base64UrlStringToBytes(auth.credentialPublicKeyBase64)
580
+ }
573
581
  };
574
582
  const verification = await verifyAuthenticationResponse(vrOpts);
575
583
  if (verification.verified) {
@@ -584,7 +592,7 @@ export class WardenService {
584
592
  ent = await this.opts.storageProvider.saveEntry(ent);
585
593
  }
586
594
  else {
587
- Logger.info('Not removing - no such user as %s', userId);
595
+ Logger.info("Not removing - no such user as %s", userId);
588
596
  }
589
597
  return ent;
590
598
  }
@@ -600,7 +608,7 @@ export class WardenService {
600
608
  rval = true;
601
609
  }
602
610
  else {
603
- Logger.warn('Cannot remove non-existent user : %s', userId);
611
+ Logger.warn("Cannot remove non-existent user : %s", userId);
604
612
  }
605
613
  }
606
614
  return rval;
@@ -1 +1 @@
1
- {"version":3,"file":"warden-service.js","sourceRoot":"","sources":["../../src/server/warden-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warden-service.js","sourceRoot":"","sources":["../../src/server/warden-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { WardenWebAuthnEntry } from "@bitblit/ratchet-warden-common/common/model/warden-web-authn-entry";
2
+ export interface WardenWebAuthnExportToken {
3
+ entry: WardenWebAuthnEntry;
4
+ challenge: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=warden-web-authn-export-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warden-web-authn-export-token.js","sourceRoot":"","sources":["../../src/server/warden-web-authn-export-token.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-warden-server",
3
- "version": "5.1.690-alpha",
3
+ "version": "5.1.691-alpha",
4
4
  "description": "Typescript library to simplify using simplewebauthn and secondary auth methods over GraphQL",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -48,10 +48,10 @@
48
48
  "dependencies": {
49
49
  "@aws-sdk/client-s3": "3.873.0",
50
50
  "@aws-sdk/client-ses": "3.873.0",
51
- "@bitblit/ratchet-aws": "5.1.690-alpha",
52
- "@bitblit/ratchet-common": "5.1.690-alpha",
53
- "@bitblit/ratchet-node-only": "5.1.690-alpha",
54
- "@bitblit/ratchet-warden-common": "5.1.690-alpha",
51
+ "@bitblit/ratchet-aws": "5.1.691-alpha",
52
+ "@bitblit/ratchet-common": "5.1.691-alpha",
53
+ "@bitblit/ratchet-node-only": "5.1.691-alpha",
54
+ "@bitblit/ratchet-warden-common": "5.1.691-alpha",
55
55
  "@simplewebauthn/browser": "13.1.2",
56
56
  "@simplewebauthn/server": "13.1.2",
57
57
  "jsonwebtoken": "9.0.2"
@@ -59,9 +59,9 @@
59
59
  "peerDependencies": {
60
60
  "@aws-sdk/client-s3": "^3.873.0",
61
61
  "@aws-sdk/client-ses": "^3.873.0",
62
- "@bitblit/ratchet-aws": "5.1.690-alpha",
63
- "@bitblit/ratchet-common": "5.1.690-alpha",
64
- "@bitblit/ratchet-warden-common": "5.1.690-alpha",
62
+ "@bitblit/ratchet-aws": "5.1.691-alpha",
63
+ "@bitblit/ratchet-common": "5.1.691-alpha",
64
+ "@bitblit/ratchet-warden-common": "5.1.691-alpha",
65
65
  "@simplewebauthn/browser": "^13.1.2",
66
66
  "@simplewebauthn/server": "^13.1.2",
67
67
  "jsonwebtoken": "^9.0.2"