@samebase/identity-broker 0.9.3 → 0.10.0

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/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  # identity-broker
2
2
 
3
3
  An OpenID Provider that runs on [Convex](https://convex.dev). One deployment holds a team's sign-in
4
- connections once, such as GitHub, Google and email codes, and signs users in to many small apps. The
5
- broker keeps no user accounts and no sessions: every sign-in goes upstream again, and each app
6
- creates its own user from the `id_token` it receives.
4
+ connections once, such as Google and GitHub, and signs users in to many small apps. The broker keeps
5
+ no user accounts and no sessions: every sign-in goes upstream again, and each app creates its own
6
+ user from the `id_token` it receives.
7
7
 
8
8
  ![Google and GitHub refuse preview deployments because each has a new URL. Identity Broker sits in front of them, so each provider sees one client and one URL, and every app and preview registers its exact URL at deploy.](https://raw.githubusercontent.com/samebase/samebase/main/packages/identity-broker/docs/how-it-works.gif)
9
9
 
10
- Why: every new app otherwise needs its own OAuth app registrations and its own email sender, and a
11
- preview deployment with a fresh callback URL cannot have them at all. With the broker, an app
12
- registers each deployment as a client at deploy time and never touches GitHub or Google.
10
+ Why: every new app otherwise needs its own OAuth app registrations, and a preview deployment with a
11
+ fresh callback URL cannot have them at all. With the broker, an app registers each deployment as a
12
+ client at deploy time and never touches GitHub or Google.
13
13
 
14
14
  ## Start from our hub
15
15
 
@@ -27,9 +27,8 @@ steps.
27
27
  flow with PKCE, discovery, JWKS, userinfo, and an internal function that registers a client. RS256
28
28
  `id_token`s with pairwise subjects per app; a first-party app also gets the connector's own id for
29
29
  the account in `connector_account_id`.
30
- - Connectors are configuration: any OAuth 2.0 provider that publishes RFC 8414 metadata, any OpenID
31
- Connect provider, and an email code sent by your own action. `github()`, `google()` and `email()`
32
- are included.
30
+ - Connectors are configuration: any OAuth 2.0 provider that publishes RFC 8414 metadata, and any
31
+ OpenID Connect provider. `github()` and `google()` are included.
33
32
  - `Convex.HubClient` of [`@samebase/alchemy-convex`](https://github.com/samebase/alchemy-convex), an
34
33
  Alchemy v2 resource, registers a deployment as a client at deploy time.
35
34
 
@@ -52,8 +51,8 @@ export default app;
52
51
  ```ts
53
52
  // convex/http.ts
54
53
  import { httpRouter } from "convex/server";
55
- import { defineIdentityBroker, email, github, google } from "@samebase/identity-broker";
56
- import { components, internal } from "./_generated/api";
54
+ import { defineIdentityBroker, github, google } from "@samebase/identity-broker";
55
+ import { components } from "./_generated/api";
57
56
 
58
57
  export const broker = defineIdentityBroker({
59
58
  component: components.identityBroker,
@@ -68,7 +67,6 @@ export const broker = defineIdentityBroker({
68
67
  clientId: () => process.env.GOOGLE_CLIENT_ID!,
69
68
  clientSecret: () => process.env.GOOGLE_CLIENT_SECRET!,
70
69
  }),
71
- email({ send: internal.email.sendCode }),
72
70
  ],
73
71
  });
74
72
 
@@ -1,4 +1,3 @@
1
- import type { FunctionReference } from "convex/server";
2
1
  /** What a connector attested about the user. `upstreamId` is the connector's stable account id. */
3
2
  export type UpstreamIdentity = {
4
3
  upstreamId: string;
@@ -38,17 +37,5 @@ export type OidcConnector = Credentials & {
38
37
  */
39
38
  promptLogin: boolean;
40
39
  };
41
- /** The host action that delivers a code. The broker never sees how. */
42
- export type SendEmailCode = FunctionReference<"action", "internal", {
43
- to: string;
44
- code: string;
45
- appName: string;
46
- }, null>;
47
- export type EmailConnector = {
48
- kind: "email";
49
- name: string;
50
- label: string;
51
- send: SendEmailCode;
52
- };
53
- export type Connector = OauthConnector | OidcConnector | EmailConnector;
40
+ export type Connector = OauthConnector | OidcConnector;
54
41
  export {};
@@ -16,19 +16,4 @@ export declare function chooserPage(args: {
16
16
  }>;
17
17
  denyHref: string;
18
18
  }): Response;
19
- export declare function emailAddressPage(args: {
20
- appName: string;
21
- action: string;
22
- requestId: string;
23
- error?: string;
24
- status?: number;
25
- }): Response;
26
- export declare function emailCodePage(args: {
27
- appName: string;
28
- action: string;
29
- requestId: string;
30
- email: string;
31
- error?: string;
32
- status?: number;
33
- }): Response;
34
19
  export declare function errorPage(title: string, message: string, status?: number): Response;
@@ -12,12 +12,9 @@ const STYLE = `
12
12
  h1 { font-size: 1.25rem; font-weight: 600; }
13
13
  p { margin: 0.5rem 0; }
14
14
  .list { display: grid; gap: 0.5rem; margin: 1.5rem 0; }
15
- a.button, button { display: block; width: 100%; box-sizing: border-box; padding: 0.75rem 1rem;
15
+ a.button { display: block; width: 100%; box-sizing: border-box; padding: 0.75rem 1rem;
16
16
  font: inherit; color: #111; background: #fff; border: 1px solid #111; text-align: center;
17
17
  text-decoration: none; cursor: pointer; }
18
- input { display: block; width: 100%; box-sizing: border-box; padding: 0.75rem 1rem; font: inherit;
19
- border: 1px solid #111; margin: 1rem 0; }
20
- .error { color: #b00020; }
21
18
  .muted { color: #555; }
22
19
  `;
23
20
  export function page(title, body, status = 200) {
@@ -68,26 +65,6 @@ export function chooserPage(args) {
68
65
  : `<p><a href="${escape(args.denyHref)}">Cancel and return to ${escape(args.appName)}</a></p>`;
69
66
  return page(`Sign in to ${args.appName}`, `<h1>Sign in to ${escape(args.appName)}</h1>${consent}<div class="list">${buttons}</div>${deny}`);
70
67
  }
71
- export function emailAddressPage(args) {
72
- const error = args.error === undefined ? "" : `<p class="error">${escape(args.error)}</p>`;
73
- return page(`Sign in to ${args.appName}`, `<h1>Sign in to ${escape(args.appName)}</h1><p>Enter your email address. A six-digit code is sent to it.</p>${error}
74
- <form method="post" action="${escape(args.action)}">
75
- <input type="hidden" name="request" value="${escape(args.requestId)}">
76
- <input type="hidden" name="step" value="send">
77
- <input type="email" name="email" required autocomplete="email" autofocus placeholder="you@example.com">
78
- <button type="submit">Send code</button>
79
- </form>`, args.status);
80
- }
81
- export function emailCodePage(args) {
82
- const error = args.error === undefined ? "" : `<p class="error">${escape(args.error)}</p>`;
83
- return page(`Sign in to ${args.appName}`, `<h1>Check your email</h1><p>Enter the six-digit code sent to ${escape(args.email)}.</p>${error}
84
- <form method="post" action="${escape(args.action)}">
85
- <input type="hidden" name="request" value="${escape(args.requestId)}">
86
- <input type="hidden" name="step" value="verify">
87
- <input type="text" name="code" inputmode="numeric" pattern="[0-9]{6}" required autocomplete="one-time-code" autofocus placeholder="000000">
88
- <button type="submit">Continue</button>
89
- </form>`, args.status);
90
- }
91
68
  export function errorPage(title, message, status = 400) {
92
69
  return page(title, `<h1>${escape(title)}</h1><p>${escape(message)}</p>`, status);
93
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/client/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/client/html.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;;;;CAUb,CAAC;AAEF,MAAM,UAAU,IAAI,CAAC,KAAa,EAAE,IAAY,EAAE,MAAM,GAAG,GAAG;IAC5D,MAAM,IAAI,GAAG;;;;;;SAMN,MAAM,CAAC,KAAK,CAAC;SACb,KAAK;;cAEA,IAAI;QACV,CAAC;IACP,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,0BAA0B;YAC1C,eAAe,EAAE,UAAU;YAC3B,iBAAiB,EAAE,aAAa;YAChC,uEAAuE;YACvE,yBAAyB,EAAE,wBAAwB;YACnD,iBAAiB,EAAE,MAAM;SAC1B;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAO3B;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;SAC5B,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,2BAA2B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CACpG;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,QAAQ,GAAG;QACf,aAAa;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,IAAI,CAAC;QAClB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,6DAA6D,IAAI,OAAO,CAAC;IACrH,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAe,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACjG,OAAO,IAAI,CACT,cAAc,IAAI,CAAC,OAAO,EAAE,EAC5B,kBAAkB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,OAAO,qBAAqB,OAAO,SAAS,IAAI,EAAE,CACjG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,OAAe,EAAE,MAAM,GAAG,GAAG;IACpE,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnF,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { type HttpRouter } from "convex/server";
2
2
  import type { ComponentApi } from "../component/_generated/component.js";
3
3
  import type { Connector } from "./connectors/types.js";
4
- export type { Connector, EmailConnector, OauthConnector, OidcConnector, SendEmailCode, UpstreamIdentity, } from "./connectors/types.js";
4
+ export type { Connector, OauthConnector, OidcConnector, UpstreamIdentity, } from "./connectors/types.js";
5
5
  export { github } from "./connectors/github.js";
6
6
  export { google } from "./connectors/google.js";
7
- export { email } from "./connectors/email.js";
8
7
  export { createKeySet, parseKeySet, rotateKeySet, type KeySet } from "./keys.js";
9
8
  export { assertKeySetUsable } from "./jwt.js";
10
9
  export type IdentityBrokerConfig = {
@@ -87,7 +86,6 @@ export declare function defineIdentityBroker(config: IdentityBrokerConfig): {
87
86
  cleanup: import("convex/server").RegisteredMutation<"internal", {}, Promise<{
88
87
  authRequests: number;
89
88
  authorizationCodes: number;
90
- emailSends: number;
91
89
  previewClients: number;
92
90
  signIns: number;
93
91
  }>>;
@@ -3,25 +3,22 @@ import { v } from "convex/values";
3
3
  import * as oauth from "oauth4webapi";
4
4
  import { vDeploymentType, vTokenEndpointAuthMethod } from "../component/schema.js";
5
5
  import { finishUpstream, startUpstream } from "./connectors/upstream.js";
6
- import { chooserPage, emailAddressPage, emailCodePage, errorPage } from "./html.js";
6
+ import { chooserPage, errorPage } from "./html.js";
7
7
  import { signAccessToken, signIdToken, TOKEN_TTL_SECONDS, verifyAccessToken, } from "./jwt.js";
8
8
  import { parseKeySet, publicJwks, SIGNING_ALGORITHM } from "./keys.js";
9
- import { canonicalEmail, isSecureUrl, parseRedirectUri, readBearerToken, readClientAuthentication, validateAuthorizeRest, validateAuthorizeTarget, validateTokenRequest, } from "./protocol.js";
9
+ import { isSecureUrl, parseRedirectUri, readBearerToken, readClientAuthentication, validateAuthorizeRest, validateAuthorizeTarget, validateTokenRequest, } from "./protocol.js";
10
10
  import { authorizationError, authorizationResponse, json, oauthError, readParameters, redirect, } from "./responses.js";
11
- import { pairwiseSubject, randomDigits, randomToken, sha256Hex } from "./subject.js";
11
+ import { pairwiseSubject, randomToken, sha256Hex } from "./subject.js";
12
12
  export { github } from "./connectors/github.js";
13
13
  export { google } from "./connectors/google.js";
14
- export { email } from "./connectors/email.js";
15
14
  export { createKeySet, parseKeySet, rotateKeySet } from "./keys.js";
16
15
  export { assertKeySetUsable } from "./jwt.js";
17
16
  /** A request lives this long from /authorize to the code redirect. */
18
17
  const AUTH_REQUEST_TTL_MS = 10 * 60 * 1000;
19
18
  /** A code is redeemed by the client's callback at once. */
20
19
  const CODE_TTL_MS = 60 * 1000;
21
- const EMAIL_CODE_TTL_MS = 10 * 60 * 1000;
22
20
  /** How far an upstream `auth_time` may sit outside the request's lifetime: the clocks differ. */
23
21
  const AUTH_TIME_SKEW_SECONDS = 60;
24
- const EMAIL_MAX_ATTEMPTS = 5;
25
22
  /** The scopes the broker grants; any other requested scope is dropped. */
26
23
  const SCOPES = ["openid", "email", "profile"];
27
24
  /** How long `cleanup` keeps an audit row of an issued id_token. */
@@ -119,7 +116,7 @@ export function defineIdentityBroker(config) {
119
116
  });
120
117
  const discovery = httpActionGeneric(async () => json(metadata(), 200, { "Cache-Control": "public, max-age=300" }));
121
118
  const jwks = httpActionGeneric(async () => json(publicJwks(keySet()), 200, { "Cache-Control": "public, max-age=300" }));
122
- /** Sends the user to a connector for a stored request, or shows the email form. */
119
+ /** Sends the user to a connector for a stored request. */
123
120
  async function startConnector(ctx, args) {
124
121
  const { connector, request } = args;
125
122
  const back = {
@@ -128,13 +125,6 @@ export function defineIdentityBroker(config) {
128
125
  state: request.state,
129
126
  clearCookie: args.clearCookie,
130
127
  };
131
- if (connector.kind === "email") {
132
- return emailAddressPage({
133
- appName: args.appName,
134
- action: path("/connectors/email"),
135
- requestId: request.requestId,
136
- });
137
- }
138
128
  // Freshness is honored only as prompt=login upstream; a connector without it is refused, never
139
129
  // pretended.
140
130
  if (request.freshLogin && (connector.kind === "oauth" || !connector.promptLogin)) {
@@ -252,7 +242,6 @@ export function defineIdentityBroker(config) {
252
242
  state: rest.value.state,
253
243
  freshLogin,
254
244
  },
255
- appName: app.name,
256
245
  clearCookie: undefined,
257
246
  });
258
247
  response.headers.append("Set-Cookie", setCookie);
@@ -321,7 +310,6 @@ export function defineIdentityBroker(config) {
321
310
  state: stored.state,
322
311
  freshLogin: stored.freshLogin,
323
312
  },
324
- appName: app.name,
325
313
  clearCookie: back.clearCookie,
326
314
  });
327
315
  });
@@ -433,178 +421,6 @@ export function defineIdentityBroker(config) {
433
421
  return authorizationResponse({ ...back, params: { code } });
434
422
  });
435
423
  }
436
- const emailConnector = [...connectors.values()].find((connector) => connector.kind === "email");
437
- const emailStep = httpActionGeneric(async (ctx, request) => {
438
- if (emailConnector === undefined) {
439
- return errorPage("Not configured", "Email sign-in is not configured.", 404);
440
- }
441
- const params = await readParameters(request);
442
- if (params === null) {
443
- return errorPage("Invalid form", "The form must be application/x-www-form-urlencoded.", 415);
444
- }
445
- const requestId = params.get("request") ?? "";
446
- const stored = await ctx.runQuery(component.authRequests.get, { requestId });
447
- if (stored === null) {
448
- return errorPage("Sign-in not found", "This sign-in is unknown or finished. Return to the app and try again.", 404);
449
- }
450
- // Every step moves the request on, so every step needs the browser that saw the chooser.
451
- if (!(await browserBound(request, stored))) {
452
- return unboundPage();
453
- }
454
- const back = {
455
- redirectUri: stored.redirectUri,
456
- issuer,
457
- state: stored.state,
458
- clearCookie: clearTxnCookie(request, requestId),
459
- };
460
- const app = await readApp(ctx, stored.appId);
461
- if (app === null) {
462
- return authorizationError({
463
- ...back,
464
- error: "server_error",
465
- description: "The client's app is gone.",
466
- });
467
- }
468
- const action = path("/connectors/email");
469
- const now = Date.now();
470
- const step = params.get("step");
471
- if (step === "send") {
472
- const address = canonicalEmail(params.get("email") ?? "");
473
- if (address === null) {
474
- return emailAddressPage({
475
- appName: app.name,
476
- action,
477
- requestId,
478
- error: "Enter a valid email address.",
479
- });
480
- }
481
- const code = randomDigits(6);
482
- const started = await ctx.runMutation(component.authRequests.startEmail, {
483
- requestId,
484
- connector: emailConnector.name,
485
- email: address,
486
- emailHash: await sha256Hex(address),
487
- emailCodeHash: await sha256Hex(code),
488
- emailCodeExpiresAt: now + EMAIL_CODE_TTL_MS,
489
- maxAttempts: EMAIL_MAX_ATTEMPTS,
490
- now,
491
- });
492
- if (!started.ok) {
493
- switch (started.error) {
494
- case "not_found":
495
- return errorPage("Sign-in not found", "This sign-in is unknown. Return to the app and try again.", 404);
496
- case "expired":
497
- case "wrong_status":
498
- return authorizationError({
499
- ...back,
500
- error: "access_denied",
501
- description: "The sign-in expired.",
502
- });
503
- case "locked":
504
- return authorizationError({
505
- ...back,
506
- error: "access_denied",
507
- description: "Too many wrong codes.",
508
- });
509
- case "too_soon":
510
- case "request_limit":
511
- case "address_limit":
512
- case "global_limit": {
513
- // The page the user is on, with one neutral line: nothing says whether the address is
514
- // known, and neither the address nor a code is logged.
515
- const error = started.error === "too_soon"
516
- ? "Wait a minute before asking for another code."
517
- : "Too many codes were sent. Try again later.";
518
- return stored.status === "emailSent"
519
- ? emailCodePage({
520
- appName: app.name,
521
- action,
522
- requestId,
523
- email: stored.email,
524
- error,
525
- status: 429,
526
- })
527
- : emailAddressPage({ appName: app.name, action, requestId, error, status: 429 });
528
- }
529
- default:
530
- return started;
531
- }
532
- }
533
- try {
534
- await ctx.runAction(emailConnector.send, { to: address, code, appName: app.name });
535
- }
536
- catch (error) {
537
- // Only the class name: a delivery error can carry the address or the code.
538
- console.error(`Connector "${emailConnector.name}" could not send a code: ${error instanceof Error ? error.constructor.name : typeof error}`);
539
- return errorPage("Email not sent", "The code could not be sent. Try again in a moment.", 502);
540
- }
541
- return emailCodePage({ appName: app.name, action, requestId, email: address });
542
- }
543
- if (step === "verify") {
544
- if (stored.status !== "emailSent") {
545
- return emailAddressPage({
546
- appName: app.name,
547
- action,
548
- requestId,
549
- error: "Request a code first.",
550
- });
551
- }
552
- const typed = (params.get("code") ?? "").trim();
553
- const authorizationCode = randomToken(32);
554
- const result = await ctx.runMutation(component.authRequests.verifyEmailCode, {
555
- requestId,
556
- emailCodeHash: await sha256Hex(typed),
557
- maxAttempts: EMAIL_MAX_ATTEMPTS,
558
- codeHash: await sha256Hex(authorizationCode),
559
- codeExpiresAt: now + CODE_TTL_MS,
560
- now,
561
- });
562
- if (result.ok) {
563
- return authorizationResponse({ ...back, params: { code: authorizationCode } });
564
- }
565
- switch (result.error) {
566
- case "wrong_code":
567
- return emailCodePage({
568
- appName: app.name,
569
- action,
570
- requestId,
571
- email: stored.email,
572
- error: "That code is not right.",
573
- });
574
- case "code_expired":
575
- return emailAddressPage({
576
- appName: app.name,
577
- action,
578
- requestId,
579
- error: "The code expired. Request a new one.",
580
- });
581
- case "locked":
582
- return authorizationError({
583
- ...back,
584
- error: "access_denied",
585
- description: "Too many wrong codes.",
586
- });
587
- case "expired":
588
- return authorizationError({
589
- ...back,
590
- error: "access_denied",
591
- description: "The sign-in expired.",
592
- });
593
- case "wrong_status":
594
- return emailAddressPage({
595
- appName: app.name,
596
- action,
597
- requestId,
598
- error: "Request a code first.",
599
- });
600
- case "not_found":
601
- return errorPage("Sign-in not found", "This sign-in is unknown. Return to the app and try again.", 404);
602
- default:
603
- return result;
604
- }
605
- }
606
- return errorPage("Invalid form", "Unknown step.", 400);
607
- });
608
424
  const token = httpActionGeneric(async (ctx, request) => {
609
425
  const contentType = request.headers.get("content-type")?.toLowerCase() ?? "";
610
426
  if (!contentType.startsWith("application/x-www-form-urlencoded")) {
@@ -653,7 +469,7 @@ export function defineIdentityBroker(config) {
653
469
  const claims = { sub, connector: exchange.identity.connector };
654
470
  // The connector's own account id is the same in every app, so only a first-party app, which
655
471
  // skips consent as the hub owner's own, receives it. A third-party app's consent promises a
656
- // stable id, the pairwise `sub`; for the email connector the account id is the address.
472
+ // stable id, the pairwise `sub`.
657
473
  if (exchange.firstParty) {
658
474
  claims.connector_account_id = exchange.identity.upstreamId;
659
475
  }
@@ -727,16 +543,11 @@ export function defineIdentityBroker(config) {
727
543
  http.route({ path: path("/userinfo"), method: "GET", handler: userinfo });
728
544
  http.route({ path: path("/userinfo"), method: "POST", handler: userinfo });
729
545
  for (const connector of connectors.values()) {
730
- if (connector.kind === "email") {
731
- http.route({ path: path("/connectors/email"), method: "POST", handler: emailStep });
732
- }
733
- else {
734
- http.route({
735
- path: path(`/connectors/${connector.name}/callback`),
736
- method: "GET",
737
- handler: upstreamCallback(connector),
738
- });
739
- }
546
+ http.route({
547
+ path: path(`/connectors/${connector.name}/callback`),
548
+ method: "GET",
549
+ handler: upstreamCallback(connector),
550
+ });
740
551
  }
741
552
  },
742
553
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -63,5 +63,3 @@ export type TokenInput = {
63
63
  export declare function readClientAuthentication(authorization: string | null, params: URLSearchParams): Validation<TokenInput["client"]>;
64
64
  export declare function validateTokenRequest(params: URLSearchParams, client: TokenInput["client"]): Validation<TokenInput>;
65
65
  export declare function readBearerToken(authorization: string | null): string | null;
66
- /** An email address as the broker identifies it: trimmed, NFC-normalized, lowercased. */
67
- export declare function canonicalEmail(value: string): string | null;
@@ -196,13 +196,4 @@ export function readBearerToken(authorization) {
196
196
  const match = authorization?.trim().match(/^bearer\s+(.+)$/i);
197
197
  return match?.[1]?.trim() || null;
198
198
  }
199
- /** An email address as the broker identifies it: trimmed, NFC-normalized, lowercased. */
200
- export function canonicalEmail(value) {
201
- const email = value.trim().normalize("NFC").toLowerCase();
202
- const at = email.indexOf("@");
203
- if (at <= 0 || at === email.length - 1 || email.includes(" ") || email.length > 320) {
204
- return null;
205
- }
206
- return email;
207
- }
208
199
  //# sourceMappingURL=protocol.js.map