v1.32.0
logto-io/logtov1.32.0Sep 30, 2025by silverhand-bot
AI Summary
This release introduces email and phone MFA support with OTP verification, adds OIDC ui_locales parameter support for language customization, and enables Twilio risk control configuration. Additional features include X connector email address syncing and WebAuthN rpId domain binding fixes.
Key Highlights
- Email and SMS MFA with OTP verification codes
- OIDC ui_locales parameter for UI language customization
- Twilio risk control configuration option
- X (Twitter) connector email address syncing
- WebAuthN rpId bound to request domain for account API
New Features
- Email verification code MFA factor
- SMS (phone) verification code MFA factor
- OIDC ui_locales authentication parameter
- Twilio Disable risk check option
- X connector users.email scope support
Full Release Notes

## Email and phone MFA
You can now let users choose either email or phone number for MFA, and verify them with OTP codes.
- Add two new MFA factors: Email verification code and SMS (phone) verification code.
- Support binding these factors during registration or first sign-in when MFA is required.
- Support verifying these factors on subsequent sign-ins with dedicated MFA verification pages.
- Update Console to configure these factors and surface guidance/conflict warnings.
- Support customizing forgot password methods in Sign-in Experience (related).
To learn more about this feature, please refer to the documentation: https://docs.logto.io/end-user-flows/mfa
## Support OIDC standard authentication parameter `ui_locales`
We are now supporting the standard OIDC `ui_locales` auth parameter to customize the language of the authentication pages. You can pass the `ui_locales` parameter in the signIn method via the extraParams option in all Logto SDKs.
### What it does
- Determines the UI language of the Logto-hosted sign-in experience at runtime. Logto picks the first language tag in `ui_locales` that is supported in your tenant's language library.
- Affects email localization for messages triggered by the interaction (e.g., verification code emails).
- Exposes the original value to email templates as a variable `uiLocales`, allowing you to include it in the email subject/content if needed.
### Example
If you want to display the sign-in page in French (Canada), you can do it like this:
```ts
await logtoClient.signIn({
redirectUri: "https://your.app/callback",
extraParams: {
ui_locales: "fr-CA fr en",
},
});
```
Refer to the [documentation](https://docs.logto.io/end-user-flows/authentication-parameters/ui-locales) for more details.
## Support config Twilio risk control
You can now disable Twilio's built-in risk check by setting the "Disable risk check" option in the connector configuration.
## X connector email address syncing
You can now add the `users.email` scope to sync users' email addresses from X accounts.
## Bug fixes
- Bind WebAuthn `rpId` to request domain for account api: The `rpId` now matches the domain you use to access the API (including custom domains), consistent with the sign-in experience.
**Full Changelog**: https://github.com/logto-io/logto/compare/v1.31.1...v1.32.0