Kinde SDKs
SDKs and APIs
For authentication to work, you need to add callback URLs into your app.
https://[YOUR_SERVER_URL]/kinde_callback
. Make sure the callback URL does not have a trailing space.A common error reported by new users is that they receive an ‘invalid callback URL’ message when testing their connection. If you get this error, check the following:
You can use wildcards in the Kinde callback URLs.
This is helpful if you have multiple subdomains, for example. Just replace the subdomain with an asterisk *
— for example https://*.mybusiness.com/callback
.
We recommend using wildcards only for non-production purposes, as they present increased security risk.
*.com
is not allowed).https://*.*.hello.com
is not allowed).http
or https
URL protocols (*.hello.com
, service:jmx:rmi://[host[:port]][urlPath]
are not allowed).https://*.hello.com
is allowed, https://hello.*.com
is not allowed).https://prefix-*-suffix.hello.com
)https://*.hello.com
will not work with https://sub1.sub2.hello.com
)*.vercel.app
is not allowed as this opens up anyone to authenticate on the Vercel platform, but *something.vercel.app
is allowed as this will lock callbacks to your team or personal account).https://sub1.sub2.hello.com/*
is not allowed). You can use the post-login redirect (available in several SDKs) to achieve dynamic navigation after authentication.A more secure way of managing dynamic wildcards is to integrate with the Kinde Management API and manage them via API calls. This way you can be sure only allowed callbacks are authenticating against your Kinde instance.
If your application lives in a GitHub repository connected to Vercel, refer to this section on how to add wildcard callback URLs via the Kinde API.
You can also use our callbacks endpoint in our Management API to add specific callbacks at the relevant point in your deployment.
Kinde does not currently provide the ability to distinguish between a sign in and new registration, when the user lands on the callback URL.
We recommend that you map the Kinde user IDs to your internal users. Then when the token from Kinde gets verified,
We don’t include this information in the token because it’s possible to create a user via an API, or in the admin UI (via custom import).