@better-auth/sso 1.4.0-beta.24 → 1.4.0-beta.25

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @better-auth/sso@1.4.0-beta.24 build /home/runner/work/better-auth/better-auth/packages/sso
2
+ > @better-auth/sso@1.4.0-beta.25 build /home/runner/work/better-auth/better-auth/packages/sso
3
3
  > tsdown
4
4
 
5
5
  ℹ tsdown v0.16.5 powered by rolldown v1.0.0-beta.50
@@ -7,10 +7,10 @@
7
7
  ℹ entry: src/index.ts, src/client.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/index.mjs 57.85 kB │ gzip: 10.36 kB
10
+ ℹ dist/index.mjs 58.41 kB │ gzip: 10.32 kB
11
11
  ℹ dist/client.mjs  0.15 kB │ gzip: 0.14 kB
12
12
  ℹ dist/client.d.mts  0.49 kB │ gzip: 0.29 kB
13
13
  ℹ dist/index.d.mts  0.21 kB │ gzip: 0.15 kB
14
14
  ℹ dist/index-BdGHTkZi.d.mts 25.39 kB │ gzip: 3.95 kB
15
- ℹ 5 files, total: 84.10 kB
16
- ✔ Build complete in 11149ms
15
+ ℹ 5 files, total: 84.66 kB
16
+ ✔ Build complete in 11606ms
package/dist/index.mjs CHANGED
@@ -751,8 +751,18 @@ const signInSSO = (options) => {
751
751
  if (provider.samlConfig) {
752
752
  const parsedSamlConfig = typeof provider.samlConfig === "object" ? provider.samlConfig : safeJsonParse(provider.samlConfig);
753
753
  if (!parsedSamlConfig) throw new APIError("BAD_REQUEST", { message: "Invalid SAML configuration" });
754
+ let metadata = parsedSamlConfig.spMetadata.metadata;
755
+ if (!metadata) metadata = saml.SPMetadata({
756
+ entityID: parsedSamlConfig.spMetadata?.entityID || parsedSamlConfig.issuer,
757
+ assertionConsumerService: [{
758
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
759
+ Location: parsedSamlConfig.callbackUrl || `${ctx.context.baseURL}/sso/saml2/sp/acs/${provider.providerId}`
760
+ }],
761
+ wantMessageSigned: parsedSamlConfig.wantAssertionsSigned || false,
762
+ nameIDFormat: parsedSamlConfig.identifierFormat ? [parsedSamlConfig.identifierFormat] : void 0
763
+ }).getMetadata() || "";
754
764
  const sp = saml.ServiceProvider({
755
- metadata: parsedSamlConfig.spMetadata.metadata,
765
+ metadata,
756
766
  allowCreate: true
757
767
  });
758
768
  const idp = saml.IdentityProvider({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@better-auth/sso",
3
3
  "author": "Bereket Engida",
4
- "version": "1.4.0-beta.24",
4
+ "version": "1.4.0-beta.25",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
7
7
  "homepage": "https://www.better-auth.com/docs/plugins/sso",
@@ -65,10 +65,10 @@
65
65
  "express": "^5.1.0",
66
66
  "oauth2-mock-server": "^7.2.1",
67
67
  "tsdown": "^0.16.0",
68
- "better-auth": "1.4.0-beta.24"
68
+ "better-auth": "1.4.0-beta.25"
69
69
  },
70
70
  "peerDependencies": {
71
- "better-auth": "1.4.0-beta.24"
71
+ "better-auth": "1.4.0-beta.25"
72
72
  },
73
73
  "scripts": {
74
74
  "test": "vitest",
package/src/routes/sso.ts CHANGED
@@ -1039,8 +1039,35 @@ export const signInSSO = (options?: SSOOptions) => {
1039
1039
  message: "Invalid SAML configuration",
1040
1040
  });
1041
1041
  }
1042
+
1043
+ let metadata = parsedSamlConfig.spMetadata.metadata;
1044
+
1045
+ if (!metadata) {
1046
+ metadata =
1047
+ saml
1048
+ .SPMetadata({
1049
+ entityID:
1050
+ parsedSamlConfig.spMetadata?.entityID ||
1051
+ parsedSamlConfig.issuer,
1052
+ assertionConsumerService: [
1053
+ {
1054
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
1055
+ Location:
1056
+ parsedSamlConfig.callbackUrl ||
1057
+ `${ctx.context.baseURL}/sso/saml2/sp/acs/${provider.providerId}`,
1058
+ },
1059
+ ],
1060
+ wantMessageSigned:
1061
+ parsedSamlConfig.wantAssertionsSigned || false,
1062
+ nameIDFormat: parsedSamlConfig.identifierFormat
1063
+ ? [parsedSamlConfig.identifierFormat]
1064
+ : undefined,
1065
+ })
1066
+ .getMetadata() || "";
1067
+ }
1068
+
1042
1069
  const sp = saml.ServiceProvider({
1043
- metadata: parsedSamlConfig.spMetadata.metadata,
1070
+ metadata: metadata,
1044
1071
  allowCreate: true,
1045
1072
  });
1046
1073