/frontend-app-authn

Open edX micro-frontend application for new login and registration experience.

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Build Status Continuous Integration Codecov semantic-release

frontend-app-authn

Please tag @openedx/vanguards on any PRs or issues. Thanks!

Introduction

This is a micro-frontend application responsible for the login, registration and password reset functionality.

What is the domain of this MFE?

  • Register page
  • Login page
  • Forgot password page
  • Reset password page
  • Progressive profiling page

Installation

This MFE is bundled with Devstack, see the Getting Started section for setup instructions.

  1. Install Devstack using the Getting Started instructions.
  2. Start up LMS, if it's not already started.
  1. Within this project (frontend-app-authn), install requirements and start the development server:

    npm install
    npm start # The server will run on port 1999
    
  2. Once the dev server is up, visit http://localhost:1999 to access the MFE

    ./docs/images/frontend-app-authn-localhost-preview.png

    Note: Follow Enable social auth locally for enabling Social Sign-on Buttons (SSO) locally

Environment Variables/Setup Notes

This MFE is configured via environment variables supplied at build time. All micro-frontends have a shared set of required environment variables, as documented in the Open edX Developer Guide under Required Environment Variables.

The authentication micro-frontend also requires the following additional variable:

Environment Variables
Name Description / Usage Example
LOGIN_ISSUE_SUPPORT_LINK The fully-qualified URL to the login issue support page in the target environment. https://support.example.com
ACTIVATION_EMAIL_SUPPORT_LINK The fully-qualified URL to the activation email support page in the target environment. https://support.example.com
PASSWORD_RESET_SUPPORT_LINK The fully-qualified URL to the password reset support page in the target environment. https://support.example.com
AUTHN_PROGRESSIVE_PROFILING_SUPPORT_LINK The fully-qualified URL to the progressive profiling support page in the target environment. https://support.example.com
TOS_AND_HONOR_CODE The fully-qualified URL to the Honor code page in the target environment. https://example.com/honor
TOS_LINK The fully-qualified URL to the Terms of service page in the target environment. https://example.com/tos
PRIVACY_POLICY The fully-qualified URL to the Privacy policy page in the target environment. https://example.com/privacy
INFO_EMAIL The valid email address for information query regarding the target environment. info@example.com
ENABLE_DYNAMIC_REGISTRATION_FIELDS Enables support for configurable registration fields on the MFE. This flag must be enabled to show any required registration field besides the default fields (name, email, username, password). true | '' (empty strings are falsy)
ENABLE_PROGRESSIVE_PROFILING_ON_AUTHN Enables support for progressive profiling. If enabled, users are redirected to a second page where data for optional registration fields can be collected. true | '' (empty strings are falsy)
DISABLE_ENTERPRISE_LOGIN Disables the enterprise login from Authn MFE. true | '' (empty strings are falsy)
MFE_CONFIG_API_URL Link of the API to get runtime mfe configuration variables from the site configuration or django settings. /api/v1/mfe_config | '' (empty strings are falsy)
APP_ID Name of MFE, this will be used by the API to get runtime configurations for the specific micro frontend. For a frontend repo frontend-app-appName, use appName as APP_ID. authn | ''

edX-specific Environment Variables

Furthermore, there are several edX-specific environment variables that enable integrations with closed-source services private to the edX organization, and might be unsupported in Open edX.

edX-specific Environment Variables
Name Description / Usage Example
MARKETING_EMAILS_OPT_IN Enables support for opting in marketing emails that helps us getting user consent for sending marketing emails. true | '' (empty strings are falsy)
SHOW_CONFIGURABLE_EDX_FIELDS For edX, country and honor code fields are required by default. This flag enables edX specific required fields. true | '' (empty strings are falsy)

For more information see the document: Micro-frontend applications in Open edX.

How To Contribute

Contributions are very welcome, and strongly encouraged! We've put together some documentation that describes our contribution process.

Even though they were written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

PR description template should be automatically applied if you are sending PR from github interface; otherwise you can find it it at PULL_REQUEST_TEMPLATE.md

This project is currently accepting all types of contributions, bug fixes and security fixes.

Open edX Code of Conduct

All community members are expected to follow the Open edX Code of Conduct.

People

The assigned maintainers for this component and other project details may be found in Backstage. Backstage pulls this data from the catalog-info.yaml file in this repo.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Known Issues

None

License

The code in this repository is licensed under the GNU Affero General Public License v3.0, unless otherwise noted.

Please see LICENSE for details.