ERROR [Better Auth]: SyntaxError SyntaxError: "[object Object]" is not valid JSON on SSO sign in
export const POST = withAuth(
{
permission: { entity: 'organizations', action: 'manage' }
},
async (req, _user, { body }) => {
const { orgId, orgSlug, domain, entryPoint, cert, metadataXml } = body
const providerId = `${orgSlug}-saml`
const origin =
req.headers.get('origin') ??
process.env.NEXT_PUBLIC_AUTH_URL
const entityId = `https://my app/${orgSlug}-saml`
const callbackUrl = `${origin}/api/auth/sso/saml2/callback/${providerId}`
try {
const spMetadataXml = await generateSpMetadata({ entityId, callbackUrl })
const samlConfig = {
entryPoint,
cert,
callbackUrl,
audience: entityId,
entityId,
wantAssertionsSigned: true,
signatureAlgorithm: 'sha256',
digestAlgorithm: 'sha256',
identifierFormat:
'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
idpMetadata: {
metadata: metadataXml
},
spMetadata: {
metadata: spMetadataXml,
binding: 'post'
},
mapping: {
id: 'http://schemas.microsoft.com/identity/claims/objectidentifier',
email: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
name: 'http://schemas.microsoft.com/identity/claims/displayname'
}
}
await auth.api.registerSSOProvider({
body: {
providerId,
issuer: entryPoint,
domain,
organizationId: orgId,
samlConfig
},
headers: await headers()
})
return NextResponse.json({ success: true, spMetadataXml })
} catch (err) {
console.error('[SSO REGISTER ERROR]', err)
return NextResponse.json({ error: 'SSO setup failed' }, { status: 500 })
}
}
)export const POST = withAuth(
{
permission: { entity: 'organizations', action: 'manage' }
},
async (req, _user, { body }) => {
const { orgId, orgSlug, domain, entryPoint, cert, metadataXml } = body
const providerId = `${orgSlug}-saml`
const origin =
req.headers.get('origin') ??
process.env.NEXT_PUBLIC_AUTH_URL
const entityId = `https://my app/${orgSlug}-saml`
const callbackUrl = `${origin}/api/auth/sso/saml2/callback/${providerId}`
try {
const spMetadataXml = await generateSpMetadata({ entityId, callbackUrl })
const samlConfig = {
entryPoint,
cert,
callbackUrl,
audience: entityId,
entityId,
wantAssertionsSigned: true,
signatureAlgorithm: 'sha256',
digestAlgorithm: 'sha256',
identifierFormat:
'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
idpMetadata: {
metadata: metadataXml
},
spMetadata: {
metadata: spMetadataXml,
binding: 'post'
},
mapping: {
id: 'http://schemas.microsoft.com/identity/claims/objectidentifier',
email: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
name: 'http://schemas.microsoft.com/identity/claims/displayname'
}
}
await auth.api.registerSSOProvider({
body: {
providerId,
issuer: entryPoint,
domain,
organizationId: orgId,
samlConfig
},
headers: await headers()
})
return NextResponse.json({ success: true, spMetadataXml })
} catch (err) {
console.error('[SSO REGISTER ERROR]', err)
return NextResponse.json({ error: 'SSO setup failed' }, { status: 500 })
}
}
)this is my implementation of the register provider. I get this error when i try to sign in with SSO. My app is just pseduo code to remove my actual urls.
