integrate-sdk 0.8.7 → 0.8.9

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.
@@ -1079,7 +1079,8 @@ class OAuthManager {
1079
1079
  codeChallenge,
1080
1080
  codeChallengeMethod: "S256",
1081
1081
  redirectUri,
1082
- codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
1082
+ codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
1083
+ frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
1083
1084
  })
1084
1085
  });
1085
1086
  if (!response.ok) {
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
6384
6385
  }
6385
6386
  }
6386
6387
  }
6387
- function storeCodeVerifier(state, codeVerifier, provider) {
6388
+ function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
6388
6389
  const expiresAt = Date.now() + 5 * 60 * 1000;
6389
- codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
6390
+ codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
6390
6391
  cleanupExpiredCodeVerifiers();
6391
6392
  }
6392
6393
  function getCodeVerifier(state) {
6393
6394
  cleanupExpiredCodeVerifiers();
6394
6395
  const entry = codeVerifierStorage.get(state);
6395
6396
  if (entry && entry.expiresAt >= Date.now()) {
6396
- return { codeVerifier: entry.codeVerifier, provider: entry.provider };
6397
+ return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
6397
6398
  }
6398
6399
  if (entry) {
6399
6400
  codeVerifierStorage.delete(state);
@@ -6580,9 +6581,14 @@ function createMCPServer(config) {
6580
6581
  } catch {}
6581
6582
  }
6582
6583
  const codeVerifierEntry = getCodeVerifier(state);
6584
+ if (codeVerifierEntry) {
6585
+ console.log("[OAuth Backend Callback] Found codeVerifier, using backend redirect flow");
6586
+ } else {
6587
+ console.log("[OAuth Backend Callback] No codeVerifier found, using frontend redirect flow");
6588
+ }
6583
6589
  if (codeVerifierEntry) {
6584
6590
  try {
6585
- const { codeVerifier, provider } = codeVerifierEntry;
6591
+ const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
6586
6592
  const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
6587
6593
  const oauthHandler = new OAuthHandler({
6588
6594
  providers,
@@ -6599,15 +6605,19 @@ function createMCPServer(config) {
6599
6605
  state
6600
6606
  });
6601
6607
  if (!frontendOrigin) {
6602
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6603
- if (referer) {
6604
- try {
6605
- const refererUrl = new URL(referer);
6606
- frontendOrigin = refererUrl.origin;
6607
- } catch {}
6608
- }
6609
- if (!frontendOrigin) {
6610
- throw new Error("Could not determine frontend origin for redirect");
6608
+ if (storedFrontendOrigin) {
6609
+ frontendOrigin = storedFrontendOrigin;
6610
+ } else {
6611
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6612
+ if (referer) {
6613
+ try {
6614
+ const refererUrl = new URL(referer);
6615
+ frontendOrigin = refererUrl.origin;
6616
+ } catch {}
6617
+ }
6618
+ if (!frontendOrigin) {
6619
+ throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
6620
+ }
6611
6621
  }
6612
6622
  }
6613
6623
  const frontendUrl = new URL(returnUrl, frontendOrigin);
@@ -6627,7 +6637,27 @@ function createMCPServer(config) {
6627
6637
  return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6628
6638
  }
6629
6639
  } else {
6630
- const targetUrl = new URL(returnUrl, request.url);
6640
+ let targetOrigin = frontendOrigin;
6641
+ if (!targetOrigin) {
6642
+ try {
6643
+ const returnUrlObj = new URL(returnUrl);
6644
+ targetOrigin = returnUrlObj.origin;
6645
+ returnUrl = returnUrlObj.pathname + returnUrlObj.search;
6646
+ } catch {
6647
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6648
+ if (referer) {
6649
+ try {
6650
+ const refererUrl = new URL(referer);
6651
+ targetOrigin = refererUrl.origin;
6652
+ } catch {}
6653
+ }
6654
+ }
6655
+ }
6656
+ if (!targetOrigin) {
6657
+ console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
6658
+ targetOrigin = new URL(request.url).origin;
6659
+ }
6660
+ const targetUrl = new URL(returnUrl, targetOrigin);
6631
6661
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
6632
6662
  return Response.redirect(targetUrl);
6633
6663
  }
@@ -7200,10 +7230,13 @@ class OAuthHandler {
7200
7230
  if (authorizeRequest.codeVerifier) {
7201
7231
  try {
7202
7232
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
7203
- storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
7233
+ storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
7234
+ console.log("[OAuth] Stored codeVerifier for state:", authorizeRequest.state.substring(0, 20) + "...", "frontendOrigin:", authorizeRequest.frontendOrigin);
7204
7235
  } catch (error) {
7205
7236
  console.warn("[OAuth] Failed to store codeVerifier:", error);
7206
7237
  }
7238
+ } else {
7239
+ console.log("[OAuth] No codeVerifier provided in authorize request");
7207
7240
  }
7208
7241
  if (webRequest) {
7209
7242
  try {
@@ -1079,7 +1079,8 @@ class OAuthManager {
1079
1079
  codeChallenge,
1080
1080
  codeChallengeMethod: "S256",
1081
1081
  redirectUri,
1082
- codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
1082
+ codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
1083
+ frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
1083
1084
  })
1084
1085
  });
1085
1086
  if (!response.ok) {
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
6384
6385
  }
6385
6386
  }
6386
6387
  }
6387
- function storeCodeVerifier(state, codeVerifier, provider) {
6388
+ function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
6388
6389
  const expiresAt = Date.now() + 5 * 60 * 1000;
6389
- codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
6390
+ codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
6390
6391
  cleanupExpiredCodeVerifiers();
6391
6392
  }
6392
6393
  function getCodeVerifier(state) {
6393
6394
  cleanupExpiredCodeVerifiers();
6394
6395
  const entry = codeVerifierStorage.get(state);
6395
6396
  if (entry && entry.expiresAt >= Date.now()) {
6396
- return { codeVerifier: entry.codeVerifier, provider: entry.provider };
6397
+ return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
6397
6398
  }
6398
6399
  if (entry) {
6399
6400
  codeVerifierStorage.delete(state);
@@ -6580,9 +6581,14 @@ function createMCPServer(config) {
6580
6581
  } catch {}
6581
6582
  }
6582
6583
  const codeVerifierEntry = getCodeVerifier(state);
6584
+ if (codeVerifierEntry) {
6585
+ console.log("[OAuth Backend Callback] Found codeVerifier, using backend redirect flow");
6586
+ } else {
6587
+ console.log("[OAuth Backend Callback] No codeVerifier found, using frontend redirect flow");
6588
+ }
6583
6589
  if (codeVerifierEntry) {
6584
6590
  try {
6585
- const { codeVerifier, provider } = codeVerifierEntry;
6591
+ const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
6586
6592
  const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
6587
6593
  const oauthHandler = new OAuthHandler({
6588
6594
  providers,
@@ -6599,15 +6605,19 @@ function createMCPServer(config) {
6599
6605
  state
6600
6606
  });
6601
6607
  if (!frontendOrigin) {
6602
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6603
- if (referer) {
6604
- try {
6605
- const refererUrl = new URL(referer);
6606
- frontendOrigin = refererUrl.origin;
6607
- } catch {}
6608
- }
6609
- if (!frontendOrigin) {
6610
- throw new Error("Could not determine frontend origin for redirect");
6608
+ if (storedFrontendOrigin) {
6609
+ frontendOrigin = storedFrontendOrigin;
6610
+ } else {
6611
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6612
+ if (referer) {
6613
+ try {
6614
+ const refererUrl = new URL(referer);
6615
+ frontendOrigin = refererUrl.origin;
6616
+ } catch {}
6617
+ }
6618
+ if (!frontendOrigin) {
6619
+ throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
6620
+ }
6611
6621
  }
6612
6622
  }
6613
6623
  const frontendUrl = new URL(returnUrl, frontendOrigin);
@@ -6627,7 +6637,27 @@ function createMCPServer(config) {
6627
6637
  return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6628
6638
  }
6629
6639
  } else {
6630
- const targetUrl = new URL(returnUrl, request.url);
6640
+ let targetOrigin = frontendOrigin;
6641
+ if (!targetOrigin) {
6642
+ try {
6643
+ const returnUrlObj = new URL(returnUrl);
6644
+ targetOrigin = returnUrlObj.origin;
6645
+ returnUrl = returnUrlObj.pathname + returnUrlObj.search;
6646
+ } catch {
6647
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6648
+ if (referer) {
6649
+ try {
6650
+ const refererUrl = new URL(referer);
6651
+ targetOrigin = refererUrl.origin;
6652
+ } catch {}
6653
+ }
6654
+ }
6655
+ }
6656
+ if (!targetOrigin) {
6657
+ console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
6658
+ targetOrigin = new URL(request.url).origin;
6659
+ }
6660
+ const targetUrl = new URL(returnUrl, targetOrigin);
6631
6661
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
6632
6662
  return Response.redirect(targetUrl);
6633
6663
  }
@@ -7200,10 +7230,13 @@ class OAuthHandler {
7200
7230
  if (authorizeRequest.codeVerifier) {
7201
7231
  try {
7202
7232
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
7203
- storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
7233
+ storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
7234
+ console.log("[OAuth] Stored codeVerifier for state:", authorizeRequest.state.substring(0, 20) + "...", "frontendOrigin:", authorizeRequest.frontendOrigin);
7204
7235
  } catch (error) {
7205
7236
  console.warn("[OAuth] Failed to store codeVerifier:", error);
7206
7237
  }
7238
+ } else {
7239
+ console.log("[OAuth] No codeVerifier provided in authorize request");
7207
7240
  }
7208
7241
  if (webRequest) {
7209
7242
  try {
package/dist/index.js CHANGED
@@ -1112,7 +1112,8 @@ class OAuthManager {
1112
1112
  codeChallenge,
1113
1113
  codeChallengeMethod: "S256",
1114
1114
  redirectUri,
1115
- codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
1115
+ codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
1116
+ frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
1116
1117
  })
1117
1118
  });
1118
1119
  if (!response.ok) {
@@ -6755,16 +6756,16 @@ function cleanupExpiredCodeVerifiers() {
6755
6756
  }
6756
6757
  }
6757
6758
  }
6758
- function storeCodeVerifier(state, codeVerifier, provider) {
6759
+ function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
6759
6760
  const expiresAt = Date.now() + 5 * 60 * 1000;
6760
- codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
6761
+ codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
6761
6762
  cleanupExpiredCodeVerifiers();
6762
6763
  }
6763
6764
  function getCodeVerifier(state) {
6764
6765
  cleanupExpiredCodeVerifiers();
6765
6766
  const entry = codeVerifierStorage.get(state);
6766
6767
  if (entry && entry.expiresAt >= Date.now()) {
6767
- return { codeVerifier: entry.codeVerifier, provider: entry.provider };
6768
+ return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
6768
6769
  }
6769
6770
  if (entry) {
6770
6771
  codeVerifierStorage.delete(state);
@@ -6951,9 +6952,14 @@ function createMCPServer(config) {
6951
6952
  } catch {}
6952
6953
  }
6953
6954
  const codeVerifierEntry = getCodeVerifier(state);
6955
+ if (codeVerifierEntry) {
6956
+ console.log("[OAuth Backend Callback] Found codeVerifier, using backend redirect flow");
6957
+ } else {
6958
+ console.log("[OAuth Backend Callback] No codeVerifier found, using frontend redirect flow");
6959
+ }
6954
6960
  if (codeVerifierEntry) {
6955
6961
  try {
6956
- const { codeVerifier, provider } = codeVerifierEntry;
6962
+ const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
6957
6963
  const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
6958
6964
  const oauthHandler = new OAuthHandler2({
6959
6965
  providers,
@@ -6970,15 +6976,19 @@ function createMCPServer(config) {
6970
6976
  state
6971
6977
  });
6972
6978
  if (!frontendOrigin) {
6973
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6974
- if (referer) {
6975
- try {
6976
- const refererUrl = new URL(referer);
6977
- frontendOrigin = refererUrl.origin;
6978
- } catch {}
6979
- }
6980
- if (!frontendOrigin) {
6981
- throw new Error("Could not determine frontend origin for redirect");
6979
+ if (storedFrontendOrigin) {
6980
+ frontendOrigin = storedFrontendOrigin;
6981
+ } else {
6982
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6983
+ if (referer) {
6984
+ try {
6985
+ const refererUrl = new URL(referer);
6986
+ frontendOrigin = refererUrl.origin;
6987
+ } catch {}
6988
+ }
6989
+ if (!frontendOrigin) {
6990
+ throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
6991
+ }
6982
6992
  }
6983
6993
  }
6984
6994
  const frontendUrl = new URL(returnUrl, frontendOrigin);
@@ -6998,7 +7008,27 @@ function createMCPServer(config) {
6998
7008
  return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6999
7009
  }
7000
7010
  } else {
7001
- const targetUrl = new URL(returnUrl, request.url);
7011
+ let targetOrigin = frontendOrigin;
7012
+ if (!targetOrigin) {
7013
+ try {
7014
+ const returnUrlObj = new URL(returnUrl);
7015
+ targetOrigin = returnUrlObj.origin;
7016
+ returnUrl = returnUrlObj.pathname + returnUrlObj.search;
7017
+ } catch {
7018
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
7019
+ if (referer) {
7020
+ try {
7021
+ const refererUrl = new URL(referer);
7022
+ targetOrigin = refererUrl.origin;
7023
+ } catch {}
7024
+ }
7025
+ }
7026
+ }
7027
+ if (!targetOrigin) {
7028
+ console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
7029
+ targetOrigin = new URL(request.url).origin;
7030
+ }
7031
+ const targetUrl = new URL(returnUrl, targetOrigin);
7002
7032
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
7003
7033
  return Response.redirect(targetUrl);
7004
7034
  }
@@ -7571,10 +7601,13 @@ class OAuthHandler {
7571
7601
  if (authorizeRequest.codeVerifier) {
7572
7602
  try {
7573
7603
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
7574
- storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
7604
+ storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
7605
+ console.log("[OAuth] Stored codeVerifier for state:", authorizeRequest.state.substring(0, 20) + "...", "frontendOrigin:", authorizeRequest.frontendOrigin);
7575
7606
  } catch (error) {
7576
7607
  console.warn("[OAuth] Failed to store codeVerifier:", error);
7577
7608
  }
7609
+ } else {
7610
+ console.log("[OAuth] No codeVerifier provided in authorize request");
7578
7611
  }
7579
7612
  if (webRequest) {
7580
7613
  try {
package/dist/oauth.js CHANGED
@@ -1079,7 +1079,8 @@ class OAuthManager {
1079
1079
  codeChallenge,
1080
1080
  codeChallengeMethod: "S256",
1081
1081
  redirectUri,
1082
- codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
1082
+ codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
1083
+ frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
1083
1084
  })
1084
1085
  });
1085
1086
  if (!response.ok) {
@@ -6573,16 +6574,16 @@ function cleanupExpiredCodeVerifiers() {
6573
6574
  }
6574
6575
  }
6575
6576
  }
6576
- function storeCodeVerifier(state, codeVerifier, provider) {
6577
+ function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
6577
6578
  const expiresAt = Date.now() + 5 * 60 * 1000;
6578
- codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
6579
+ codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
6579
6580
  cleanupExpiredCodeVerifiers();
6580
6581
  }
6581
6582
  function getCodeVerifier(state) {
6582
6583
  cleanupExpiredCodeVerifiers();
6583
6584
  const entry = codeVerifierStorage.get(state);
6584
6585
  if (entry && entry.expiresAt >= Date.now()) {
6585
- return { codeVerifier: entry.codeVerifier, provider: entry.provider };
6586
+ return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
6586
6587
  }
6587
6588
  if (entry) {
6588
6589
  codeVerifierStorage.delete(state);
@@ -6769,9 +6770,14 @@ function createMCPServer(config) {
6769
6770
  } catch {}
6770
6771
  }
6771
6772
  const codeVerifierEntry = getCodeVerifier(state);
6773
+ if (codeVerifierEntry) {
6774
+ console.log("[OAuth Backend Callback] Found codeVerifier, using backend redirect flow");
6775
+ } else {
6776
+ console.log("[OAuth Backend Callback] No codeVerifier found, using frontend redirect flow");
6777
+ }
6772
6778
  if (codeVerifierEntry) {
6773
6779
  try {
6774
- const { codeVerifier, provider } = codeVerifierEntry;
6780
+ const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
6775
6781
  const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
6776
6782
  const oauthHandler = new OAuthHandler2({
6777
6783
  providers,
@@ -6788,15 +6794,19 @@ function createMCPServer(config) {
6788
6794
  state
6789
6795
  });
6790
6796
  if (!frontendOrigin) {
6791
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6792
- if (referer) {
6793
- try {
6794
- const refererUrl = new URL(referer);
6795
- frontendOrigin = refererUrl.origin;
6796
- } catch {}
6797
- }
6798
- if (!frontendOrigin) {
6799
- throw new Error("Could not determine frontend origin for redirect");
6797
+ if (storedFrontendOrigin) {
6798
+ frontendOrigin = storedFrontendOrigin;
6799
+ } else {
6800
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6801
+ if (referer) {
6802
+ try {
6803
+ const refererUrl = new URL(referer);
6804
+ frontendOrigin = refererUrl.origin;
6805
+ } catch {}
6806
+ }
6807
+ if (!frontendOrigin) {
6808
+ throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
6809
+ }
6800
6810
  }
6801
6811
  }
6802
6812
  const frontendUrl = new URL(returnUrl, frontendOrigin);
@@ -6816,7 +6826,27 @@ function createMCPServer(config) {
6816
6826
  return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6817
6827
  }
6818
6828
  } else {
6819
- const targetUrl = new URL(returnUrl, request.url);
6829
+ let targetOrigin = frontendOrigin;
6830
+ if (!targetOrigin) {
6831
+ try {
6832
+ const returnUrlObj = new URL(returnUrl);
6833
+ targetOrigin = returnUrlObj.origin;
6834
+ returnUrl = returnUrlObj.pathname + returnUrlObj.search;
6835
+ } catch {
6836
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
6837
+ if (referer) {
6838
+ try {
6839
+ const refererUrl = new URL(referer);
6840
+ targetOrigin = refererUrl.origin;
6841
+ } catch {}
6842
+ }
6843
+ }
6844
+ }
6845
+ if (!targetOrigin) {
6846
+ console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
6847
+ targetOrigin = new URL(request.url).origin;
6848
+ }
6849
+ const targetUrl = new URL(returnUrl, targetOrigin);
6820
6850
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
6821
6851
  return Response.redirect(targetUrl);
6822
6852
  }
@@ -7389,10 +7419,13 @@ class OAuthHandler {
7389
7419
  if (authorizeRequest.codeVerifier) {
7390
7420
  try {
7391
7421
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
7392
- storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
7422
+ storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
7423
+ console.log("[OAuth] Stored codeVerifier for state:", authorizeRequest.state.substring(0, 20) + "...", "frontendOrigin:", authorizeRequest.frontendOrigin);
7393
7424
  } catch (error) {
7394
7425
  console.warn("[OAuth] Failed to store codeVerifier:", error);
7395
7426
  }
7427
+ } else {
7428
+ console.log("[OAuth] No codeVerifier provided in authorize request");
7396
7429
  }
7397
7430
  if (webRequest) {
7398
7431
  try {
package/dist/server.js CHANGED
@@ -1079,7 +1079,8 @@ class OAuthManager {
1079
1079
  codeChallenge,
1080
1080
  codeChallengeMethod: "S256",
1081
1081
  redirectUri,
1082
- codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
1082
+ codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
1083
+ frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
1083
1084
  })
1084
1085
  });
1085
1086
  if (!response.ok) {
@@ -2074,10 +2075,13 @@ class OAuthHandler {
2074
2075
  if (authorizeRequest.codeVerifier) {
2075
2076
  try {
2076
2077
  const { storeCodeVerifier } = await Promise.resolve().then(() => (init_server(), exports_server));
2077
- storeCodeVerifier(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
2078
+ storeCodeVerifier(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
2079
+ console.log("[OAuth] Stored codeVerifier for state:", authorizeRequest.state.substring(0, 20) + "...", "frontendOrigin:", authorizeRequest.frontendOrigin);
2078
2080
  } catch (error) {
2079
2081
  console.warn("[OAuth] Failed to store codeVerifier:", error);
2080
2082
  }
2083
+ } else {
2084
+ console.log("[OAuth] No codeVerifier provided in authorize request");
2081
2085
  }
2082
2086
  if (webRequest) {
2083
2087
  try {
@@ -7133,16 +7137,16 @@ function cleanupExpiredCodeVerifiers() {
7133
7137
  }
7134
7138
  }
7135
7139
  }
7136
- function storeCodeVerifier(state, codeVerifier, provider) {
7140
+ function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
7137
7141
  const expiresAt = Date.now() + 5 * 60 * 1000;
7138
- codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
7142
+ codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
7139
7143
  cleanupExpiredCodeVerifiers();
7140
7144
  }
7141
7145
  function getCodeVerifier(state) {
7142
7146
  cleanupExpiredCodeVerifiers();
7143
7147
  const entry = codeVerifierStorage.get(state);
7144
7148
  if (entry && entry.expiresAt >= Date.now()) {
7145
- return { codeVerifier: entry.codeVerifier, provider: entry.provider };
7149
+ return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
7146
7150
  }
7147
7151
  if (entry) {
7148
7152
  codeVerifierStorage.delete(state);
@@ -7329,9 +7333,14 @@ function createMCPServer(config) {
7329
7333
  } catch {}
7330
7334
  }
7331
7335
  const codeVerifierEntry = getCodeVerifier(state);
7336
+ if (codeVerifierEntry) {
7337
+ console.log("[OAuth Backend Callback] Found codeVerifier, using backend redirect flow");
7338
+ } else {
7339
+ console.log("[OAuth Backend Callback] No codeVerifier found, using frontend redirect flow");
7340
+ }
7332
7341
  if (codeVerifierEntry) {
7333
7342
  try {
7334
- const { codeVerifier, provider } = codeVerifierEntry;
7343
+ const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
7335
7344
  const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
7336
7345
  const oauthHandler = new OAuthHandler2({
7337
7346
  providers,
@@ -7348,15 +7357,19 @@ function createMCPServer(config) {
7348
7357
  state
7349
7358
  });
7350
7359
  if (!frontendOrigin) {
7351
- const referer = request.headers.get("referer") || request.headers.get("referrer");
7352
- if (referer) {
7353
- try {
7354
- const refererUrl = new URL(referer);
7355
- frontendOrigin = refererUrl.origin;
7356
- } catch {}
7357
- }
7358
- if (!frontendOrigin) {
7359
- throw new Error("Could not determine frontend origin for redirect");
7360
+ if (storedFrontendOrigin) {
7361
+ frontendOrigin = storedFrontendOrigin;
7362
+ } else {
7363
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
7364
+ if (referer) {
7365
+ try {
7366
+ const refererUrl = new URL(referer);
7367
+ frontendOrigin = refererUrl.origin;
7368
+ } catch {}
7369
+ }
7370
+ if (!frontendOrigin) {
7371
+ throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
7372
+ }
7360
7373
  }
7361
7374
  }
7362
7375
  const frontendUrl = new URL(returnUrl, frontendOrigin);
@@ -7376,7 +7389,27 @@ function createMCPServer(config) {
7376
7389
  return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
7377
7390
  }
7378
7391
  } else {
7379
- const targetUrl = new URL(returnUrl, request.url);
7392
+ let targetOrigin = frontendOrigin;
7393
+ if (!targetOrigin) {
7394
+ try {
7395
+ const returnUrlObj = new URL(returnUrl);
7396
+ targetOrigin = returnUrlObj.origin;
7397
+ returnUrl = returnUrlObj.pathname + returnUrlObj.search;
7398
+ } catch {
7399
+ const referer = request.headers.get("referer") || request.headers.get("referrer");
7400
+ if (referer) {
7401
+ try {
7402
+ const refererUrl = new URL(referer);
7403
+ targetOrigin = refererUrl.origin;
7404
+ } catch {}
7405
+ }
7406
+ }
7407
+ }
7408
+ if (!targetOrigin) {
7409
+ console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
7410
+ targetOrigin = new URL(request.url).origin;
7411
+ }
7412
+ const targetUrl = new URL(returnUrl, targetOrigin);
7380
7413
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
7381
7414
  return Response.redirect(targetUrl);
7382
7415
  }
@@ -101,6 +101,8 @@ export interface AuthorizeRequest {
101
101
  redirectUri?: string;
102
102
  /** Optional codeVerifier for backend redirect flow (when apiBaseUrl is set) */
103
103
  codeVerifier?: string;
104
+ /** Optional frontend origin for backend redirect flow (when apiBaseUrl is set) */
105
+ frontendOrigin?: string;
104
106
  }
105
107
  /**
106
108
  * Response from authorize endpoint
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"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"}