<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Topics tagged with login-flow]]></title><description><![CDATA[A list of topics that have been tagged with login-flow]]></description><link>https://fusionauth.io/community/forum/tags/login-flow</link><generator>RSS for Node</generator><lastBuildDate>Wed, 21 Oct 2026 00:03:51 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/tags/login-flow.rss" rel="self" type="application/rss+xml"/><pubDate>Invalid Date</pubDate><ttl>60</ttl><item><title><![CDATA[Can passwordless login code TTL be configured per application instead of per tenant?]]></title><description><![CDATA[<p dir="auto">Unfortunately, the passwordless login code TTL cannot be configured per application—it is only available as a tenant-level setting in FusionAuth. The default TTL is <strong>180 seconds</strong>, and this is configured via tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds.</p>
<p dir="auto">Here are two potential workarounds:</p>
1. Separate Tenants
<p dir="auto">Since the setting is per tenant, you could place applications that require different code lifetimes into separate tenants. Note that this means users and configuration will be isolated per tenant, so carefully evaluate whether this trade-off fits your architecture.</p>
2. Build Your Own Passwordless Flow
<p dir="auto">You can implement custom code expiration logic by using the passwordless API directly:</p>

Start the login with <a href="https://fusionauth.io/docs/apis/passwordless/start-passwordless-login" rel="nofollow ugc">/api/passwordless/start</a>
Deliver the code through your own mechanism
Track when you issued each code in your application
Enforce your desired per-application expiry by rejecting codes that are too old before calling the completion endpoint
Complete the login with <a href="https://fusionauth.io/docs/apis/passwordless/complete-a-passwordless-login" rel="nofollow ugc">/api/passwordless/login</a>

<p dir="auto">With this approach, the tenant-level TTL acts as the maximum lifetime, but your application logic can enforce shorter, application-specific expirations as needed.</p>
<p dir="auto">This is not a built-in FusionAuth feature, so if per-application passwordless code TTL is important to your use case, consider submitting a feature request on the <a href="https://github.com/FusionAuth/fusionauth-issues/issues" rel="nofollow ugc">FusionAuth GitHub issues page</a>.</p>

Related Documentation

<a href="https://fusionauth.io/docs/lifecycle/authenticate-users/passwordless/" rel="nofollow ugc">Passwordless Login Overview</a> - General overview of passwordless authentication in FusionAuth
<a href="https://fusionauth.io/docs/lifecycle/authenticate-users/passwordless/magic-links" rel="nofollow ugc">Magic Links Guide</a> - Details on magic links and one-time code customization, including TTL configuration
<a href="https://fusionauth.io/docs/apis/passwordless/" rel="nofollow ugc">Passwordless API</a> - Complete API reference for building custom passwordless flows
<a href="https://fusionauth.io/docs/apis/passwordless/start-passwordless-login" rel="nofollow ugc">Start Passwordless Login API</a> - API to generate a passwordless code
<a href="https://fusionauth.io/docs/apis/passwordless/complete-a-passwordless-login" rel="nofollow ugc">Complete Passwordless Login API</a> - API to complete the passwordless login
<a href="https://fusionauth.io/docs/get-started/core-concepts/tenants#external-identifier-generation-form-fields" rel="nofollow ugc">Tenant Configuration</a> - Tenant-level external identifier settings including passwordless login TTL

]]></description><link>https://fusionauth.io/community/forum/topic/3271/can-passwordless-login-code-ttl-be-configured-per-application-instead-of-per-tenant</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3271/can-passwordless-login-code-ttl-be-configured-per-application-instead-of-per-tenant</guid><dc:creator><![CDATA[FASupportBot]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>