<?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 customization]]></title><description><![CDATA[A list of topics that have been tagged with customization]]></description><link>https://fusionauth.io/community/forum/tags/customization</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 21:18:06 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/tags/customization.rss" rel="self" type="application/rss+xml"/><pubDate>Invalid Date</pubDate><ttl>60</ttl><item><title><![CDATA[Updates and custom themes]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2485">@billyudi</a> We are working on a update to the upgrade guide which will discuss how to map the new theme files and changes.</p>
<p dir="auto">You can follow along with it here:</p>
<p dir="auto"><a href="https://github.com/FusionAuth/fusionauth-site/pull/2166" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-site/pull/2166</a></p>
<p dir="auto">I get your larger question though, which is, if I customize my theme, and then I upgrade from 1.45 to 1.46 and 1.46 introduces a new themed page, what does that new themed page look like?</p>
<p dir="auto">Have you tried testing this out?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2409/updates-and-custom-themes</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2409/updates-and-custom-themes</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Different base resources for an environment]]></title><description><![CDATA[<p dir="auto">The best way to do this is to put a value on the tenant.data object. From there you can access it in each theme.</p>
<p dir="auto">So, for the tenant in the dev environment, set tenant.data.assethost to dev.example.com. For the prod environment,  set tenant.data.assethost to dev.example.com.</p>
<p dir="auto">Then, in your theme, you'd have something like this:</p>
&lt;link rel="stylesheet" href="${tenant.data.assethost}/styles.css"/&gt;

<p dir="auto">The reason to use the tenant object is that it is <a href="https://fusionauth.io/docs/v1/tech/themes/template-variables/#common-variables" rel="nofollow ugc">available on every theme template</a>.</p>
<p dir="auto">This does mean that your tenant configuration will differ slightly between environments. You can also replicate this field value between tenants if you are using multiple tenants.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/1337/different-base-resources-for-an-environment</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/1337/different-base-resources-for-an-environment</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How can I pass info from a external identity provider to a JWT in FusionAuth]]></title><description><![CDATA[<p dir="auto">The way to do this is to use the user.data or registration.data objects as a transfer mechanism.</p>
<p dir="auto">If you are using OIDC (SAML is much the same, but I'll use OIDC as an example), you can create a OIDC Reconcile Lambda. It might look like this:</p>
// Using the JWT returned from UserInfo, reconcile the User and User Registration.
function reconcile(user, registration, jwt) {
  user.data.favoriteColor = jwt.favoriteColor;
}

<p dir="auto">So the jwt in this case is that returned from the OIDC identity provider. We store the data in user.data.</p>
<p dir="auto">Now we need to pull it off of the user.data object using a JWT populate lambda. That might look a little something like this:</p>
// Using the user and registration parameters add additional values to the jwt object.
function populate(jwt, user, registration) {
  jwt.favoriteColor = user.data.favoriteColor;
}

<p dir="auto">favoriteColor is now available as a claim in the JWT produced by FusionAuth.</p>
<p dir="auto">Don't forget to assign your lambdas to the correct operations. The OIDC Identity provider needs to be configured with the reconcile lambda. The application's JWT tab is the right place to configure the use of the JWT populate lambda.</p>
<p dir="auto">More information on all the lambda options available here: <a href="https://fusionauth.io/docs/v1/tech/lambdas/" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/lambdas/</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/975/how-can-i-pass-info-from-a-external-identity-provider-to-a-jwt-in-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/975/how-can-i-pass-info-from-a-external-identity-provider-to-a-jwt-in-fusionauth</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Can I add new functionality to the login page?]]></title><description><![CDATA[<p dir="auto">You have a few options to do this. Unfortunately the login page, while very customizable in terms of look and feel <a href="https://fusionauth.io/docs/v1/tech/themes/" rel="nofollow ugc">via themes</a>, is less customizable in terms of functionality and adding fields. Here are some options:</p>

don't use our hosted login pages, instead build your own login pages (and all the other stuff like reset password, etc) using the Login API. You get total control of the login experience, at the cost of more custom code.
check for consent when the application is loaded, after authentication. You could store a consent variable on the user object (in the data field) or use <a href="https://fusionauth.io/docs/v1/tech/apis/consent" rel="nofollow ugc">our consent model</a>. Basically, after the user authenticates, take them to an interstitial page unless they have given consent. Put that logic in the application page they first land on.
use javascript and customize the theme. Add a consent checkbox to the login form, and set a cookie once the user consented so you don't record the consent multiple times. Make a call via javascript to an API (which you'd have to write) to record when the consent was given.

<p dir="auto">Another option would be to use <a href="https://fusionauth.io/features/advanced-registration-forms/" rel="nofollow ugc">advanced registration forms</a> for self registration and create a consent that would be required at sign up. Naturally, this doesn't help if you aren't using self service registration.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/843/can-i-add-new-functionality-to-the-login-page</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/843/can-i-add-new-functionality-to-the-login-page</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Groups as companies]]></title><description><![CDATA[<p dir="auto">Hi <a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/596">@harunkilic</a> ,</p>
<p dir="auto">Welcome to the FusionAuth community! I am glad you like the software.</p>
<p dir="auto">You can't create group fields. What you can do is assign roles to a group. If a user is in that group and registered for an application with those roles, they will assume the roles. For example:</p>
<p dir="auto">User A is in Group B. Group B has roles 1, 2, and 3. Role 1 is in Application Z. Role 2 and 3 are in Application X.</p>
<p dir="auto">If user A is registered for application X and is in Group B, they will have roles 2 and 3. They won't have role 1 because that is associated with application Z, which they are not registered for.</p>
<p dir="auto">You can't build your own entities, though that is on our roadmap. <a href="https://github.com/fusionauth/fusionauth-issues/issues/881" rel="nofollow ugc">Follow this issue</a> to be updated on when that feature is implemented. Full transparency, it will likely be a feature limited to our paid editions; learn more about our <a href="https://fusionauth.io/pricing/editions/" rel="nofollow ugc">paid editions here</a>.</p>
<p dir="auto">Whether groups make sense depends on a lot of things.</p>
<p dir="auto">Some questions to consider:</p>
<p dir="auto">Are you limiting application access by group? Are you going to be using the API to do so, or do you want to have the information in the JWTs and available after authentication? Does each company have an application? Are you going to use the hosted login pages or build your own?</p>
<p dir="auto">I can't give extensive architectural advice, but maybe if you talk a bit more about your use case the choice will be clearer.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/800/groups-as-companies</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/800/groups-as-companies</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How do I add a locale to FusionAuth?]]></title><description><![CDATA[<p dir="auto">There's additional localization and internationalization doc that was written recently here: <a href="https://fusionauth.io/docs/v1/tech/core-concepts/localization-and-internationalization/" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/core-concepts/localization-and-internationalization/</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/778/how-do-i-add-a-locale-to-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/778/how-do-i-add-a-locale-to-fusionauth</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Customizing the freemarker theme templates]]></title><description><![CDATA[<p dir="auto">You can put whatever you want in the theme pages, but it's a good idea to keep them lean so the user has a quick login experience. After all, most folks don't care about auth except when it doesn't work!</p>
<p dir="auto">You can optionally pass info in the state parameter, that will come back to the caller. This can be encoded JSON, as long as it is url safe. You will want to make sure that you don't put too much stuff in there, as there are URL length limits for browsers (though I learned that chrome has a <a href="https://chromium.googlesource.com/chromium/src/+/master/docs/security/url_display_guidelines/url_display_guidelines.md#URL-Length" rel="nofollow ugc">URL size limit of 2MB!</a>). Here's an <a href="https://ritou.medium.com/how-to-use-oauth-2-0-state-parameter-other-than-csrf-protection-ff64f91ebc8b" rel="nofollow ugc">example of using the state parameter for application state</a>.</p>
<p dir="auto">Or if you have different applications and redirect URLs, then just gathering metrics on the URLs may give you insight into who is using login, and from where.</p>
<p dir="auto">Sort of depends upon what type of analytics you need.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/489/customizing-the-freemarker-theme-templates</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/489/customizing-the-freemarker-theme-templates</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How can I use a custom font when customizing my theme?]]></title><description><![CDATA[<p dir="auto">In order to use a custom font within a publicly accessible FusionAuth template for a hosted deployment, pull the font from a CDN or other server hosting the font.</p>
<p dir="auto">FusionAuth doesn't have any persistent storage for custom theme assets. You can use any font you like as long as it can be included via a tag.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/138/how-can-i-use-a-custom-font-when-customizing-my-theme</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/138/how-can-i-use-a-custom-font-when-customizing-my-theme</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Can FusionAuth host my images?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/20">@dan</a> I would love for this to be included in the <a href="https://fusionauth.io/docs/v1/tech/themes/" rel="nofollow ugc">themes documentation</a> since it's something that every theme developer needs to figure out, and of course the default theme's assets (favicon etc.) are hosted locally and served by the FusionAuth server itself - so the answer that this can't be done for your own theme assets is <a href="https://fusionauth.io/community/forum/post/6026">non-obvious</a>!</p>
]]></description><link>https://fusionauth.io/community/forum/topic/133/can-fusionauth-host-my-images</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/133/can-fusionauth-host-my-images</guid><dc:creator><![CDATA[damien]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Social providers in Register web page]]></title><description><![CDATA[<p dir="auto">Hiya,</p>
<p dir="auto">The issue is that the identityProviders map needs to be populated for that login script to work, and the class behind this page doesn't provide that map. So for now I don't see a way to do this.</p>
<p dir="auto">There is an open github issue to allow identity providers to be displayed on the registration page. I'd suggest adding your use case to that issue: <a href="https://github.com/FusionAuth/fusionauth-issues/issues/554" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/554</a> and I'm happy to rename it to something more general. Alternatively you can file a new issue if you feel the use case is distinct enough.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/128/social-providers-in-register-web-page</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/128/social-providers-in-register-web-page</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[I want to create my own login form.]]></title><description><![CDATA[<p dir="auto">If you have your own login form, you'll either be using the Login API or the OAuth Password grant. You will use one or the other, not both, each option will provide you roughly the same functionality. Totally up to you, the Login API is our own creation, the Password grant is defined by the OAuth RFC.</p>
<p dir="auto">High level:</p>

Collect email and password
Call the Login API or the Token endpoint using the Password grant
Collect the JSON response which will contain an access token (JWT)

<p dir="auto">Login API docs: <a href="https://fusionauth.io/docs/v1/tech/apis/login#authenticate-a-user" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/apis/login#authenticate-a-user</a></p>
<p dir="auto">Password Grant: <a href="https://fusionauth.io/docs/v1/tech/oauth/endpoints#resource-owner-password-credentials-grant-request" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/oauth/endpoints#resource-owner-password-credentials-grant-request</a><br />
<a href="https://fusionauth.io/docs/v1/tech/oauth/#example-resource-owner-password-credentials-grant" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/oauth/#example-resource-owner-password-credentials-grant</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/124/i-want-to-create-my-own-login-form</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/124/i-want-to-create-my-own-login-form</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Is it possible to add custom headers to emails sent by FusionAuth?]]></title><description><![CDATA[<p dir="auto">You can now do so as of FusionAuth 1.32.</p>
<p dir="auto">More details in the issue 628 linked above.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/75/is-it-possible-to-add-custom-headers-to-emails-sent-by-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/75/is-it-possible-to-add-custom-headers-to-emails-sent-by-fusionauth</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[I need feature ABC and am willing to pay you to build it. How can I get in touch?]]></title><description><![CDATA[<p dir="auto">While we continue to improve FusionAuth (and will always have a free community edition), if you are interested in paying for a specific feature to be built, we're happy to chat. <a href="https://fusionauth.io/contact" rel="nofollow ugc">Please contact us</a> and we'll be happy to discuss costs and timelines.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/51/i-need-feature-abc-and-am-willing-to-pay-you-to-build-it-how-can-i-get-in-touch</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/51/i-need-feature-abc-and-am-willing-to-pay-you-to-build-it-how-can-i-get-in-touch</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>