Integrating Custom Registration Fields with Authn MFE

I’m encountering an issue while trying to integrate custom registration fields with the Authn MFE in the Olive release .I’ve developed a custom registration app that adds additional fields to the registration page, but these fields aren’t appearing when the Authn MFE is enabled. However, when I disable the Authn MFE, the custom fields appear as expected.

It seems like the presence of the Authn MFE might be affecting the rendering or functionality of the custom fields, has anyone encountered a similar issue ? Any troubleshooting steps or approaches to resolve it ?

I found an open issue on GitHub describing the same problem, but there’s still no solution (labeled as awaiting prioritization). Has anyone come up with a working solution, or is deactivating Authn MFE the only way to use custom registration fields in olive release ?

Hey @harout7

To configure the new Authn MFE with custom fields from the registration extension form, additional configuration is required.

If you have required fields, they will be added to the register page. However, if your fields are optional, they will be placed on an additional registration page that can be skipped.

Firstly, you need to enable the ENABLE_DYNAMIC_REGISTRATION_FIELDS setting from the settings file. This setting can be added from the plugin where the extension form is placed. The context for the form rendering is taken from this location: edx-platform/openedx/core/djangoapps/user_authn/api/views.py at open-release/olive.master · raccoongang/edx-platform · GitHub.

Next, add your field to the extended_profile_fields list for the correct condition check. You can find this condition check here: edx-platform/openedx/core/djangoapps/user_authn/api/helper.py at master · raccoongang/edx-platform · GitHub. If this step is skipped, the fields from the extension form won’t be added properly: edx-platform/openedx/core/djangoapps/user_authn/api/helper.py at master · raccoongang/edx-platform · GitHub.

Once done, ensure that the context is extended with your required fields by checking the networks tab of your browser.

Finally, you need to enable ENABLE_DYNAMIC_REGISTRATION_FIELDS for the MFE. This can be done either via deployment changes or through site configurations.

3 Likes

Thanks @arsentur your solution worked :slight_smile:

Hello @harout7 , @arsentur

Issue : Dynamic registration fields visible locally but not on development server

I have added the following settings in my plugin:

ENABLE_DYNAMIC_REGISTRATION_FIELDS = True

REGISTRATION_EXTRA_FIELDS = {

'state': 'required',

'city': 'required',

'honor_code': 'required',

'terms_of_service': 'hidden', }

Behavior:

  • On my local server, both the state and city fields are visible on the registration form as expected.

  • On my development server, these fields are not visible.

Additional details:

  • I have both .env and .env.development files inside the authn MFE.

  • In .env, the values are set to null.

  • In .env.development, all settings values are properly defined.

  • In Chrome DevTools → Network tab, The api response does include the registration_fields, but they still don’t show up in the UI.

Question:
Do I need to make any changes in .env or .env.development for these fields to be displayed in the development server? Or is there some additional MFE configuration step required?

If you have a solution, please share it here — it would be really helpful.