New connectors:
- X (Twitter) social connector
- Slack social connector
- LinkedIn social connector
- Line social connector
- Amazon social connector
Bug fixes
-
cb26102: fix cli add offical connectors command missing connectors bug
Fix the bug when running the cli commend logto connectors add --official, only 8 connectors are fetched from npm registry.
This fix update logic to query additional pages of results when fetching connectors from the npm registry. -
0b785ee: display JWKS URI on application details page
-
e7accfd: prevent i18n context contamination by using request-scoped instances
This bug fix resolves a concurrency issue in i18n handling by moving from a global i18next instance to request-scoped instances.Problem
When handling concurrent requests:
- The shared global
i18next
instance's language was being modified viachangeLanguage()
calls. - This could lead to race conditions where requests might receive translations in unexpected languages.
- Particularly problematic in multi-tenant environments with different language requirements.
Solution
- Updated
koaI18next
middleware to create a cloned i18next instance for each request. - Attach the request-scoped instance to Koa context (
ctx.i18n
) All subsequent middleware and handlers should now usectx.i18n
instead of the globali18next
instance. - Maintains the global instance for initialization while preventing cross-request contamination
- The shared global
-
a5990ec: fixes an incorrect condition check in the verification code flow where
isNewIdentifier
was using inverted logic for email and phone comparisons.Changes
- Corrected
isNewIdentifier
boolean logic to useidentifier.value !== user.primaryEmail
for email checks - Fixed phone number comparison to properly use
identifier.value !== user.primaryPhone
Impact
This fixes a regression where:
- Verification codes for existing emails/phones were incorrectly using the
BindNewIdentifier
template - New identifiers were mistakenly getting the
UserPermissionValidation
template - Affected both email and phone verification flows
- Corrected
-
28643c1: fix the email/phone identifier conflict handling logic during user registration.
When a user attempts to register with an email/phone that already exists:
Previous Behavior
"Sign in instead" modal will be shown when:
- The email/phone identifier has been verified through a verification code validation
- Identifier type (email/phone) was enabled in sign-in methods
This caused an issue when:
- Only password authentication method was enabled in the sign-in method settings.
- When users clicked "Sign in instead" action button, the API call will throw an sign-in method not enabled error. Which is confusing for the user.
Expected behavior: Show the "Email/phone already exists" error modal directly. If only password authentication is enabled. User should not be able to sign in with email/phone directly.
Fixed Behavior
Shows the "Sign in instead" modal if:
- The email/phone identifier type is enabled in the sign-in method settings and the verification code is enabled for the identifier.
Otherwise, shows the "Email/phone already exists" error modal directly.
-
bd18da4: properly filter WeChat connectors by platform (Web | Native) in SSR sign-in experience settings
Previously, platform-based social connector filtering was applied during the sign-in experience settings fetch process but not in the SSR sign-in experience data. As a result, platform-specific connectors were not correctly filtered when rendering the page using SSR data.
This update ensures that the same filtering logic is applied to SSR sign-in experience data, resolving the issue.
Affected connectors: WeChat Web and WeChat Native.