Logto product updates
It's time for a new Logto release! This update brings 5 new social connectors, and some bug fixes.
New connectors:
- X (Twitter) social connector
- Slack social connector
- LinkedIn social connector
- Line social connector
- Amazon social connector
Bug fixes
- 
cb2610: 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. 
- 
0b785e: display JWKS URI on application details page 
- 
e7accf: 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. ProblemWhen handling concurrent requests: - The shared global i18nextinstance'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 koaI18nextmiddleware 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.i18ninstead of the globali18nextinstance.
- Maintains the global instance for initialization while preventing cross-request contamination
 
- The shared global 
- 
a5990ec57: fixes an incorrect condition check in the verification code flow where isNewIdentifierwas using inverted logic for email and phone comparisons.Changes- Corrected isNewIdentifierboolean logic to useidentifier.value !== user.primaryEmailfor email checks
- Fixed phone number comparison to properly use identifier.value !== user.primaryPhone
 ImpactThis fixes a regression where: - Verification codes for existing emails/phones were incorrectly using theBindNewIdentifiertemplate
- New identifiers were mistakenly getting the UserPermissionValidationtemplate
- Affected both email and phone verification flows
 
- Corrected 
- 
28643c1f1: 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 BehaviorShows 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. 
- 
bd18da4cf: 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. 

