-
Notifications
You must be signed in to change notification settings - Fork 7
User Two Factor Authentication #4115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces two-factor authentication (2FA) UX changes to the login flow and adds an (experimental) admin UI for managing user 2FA devices, along with supporting module routing/i18n updates and dependency/lockfile changes.
Changes:
- Add a 2-step login flow (username/password → 2FA token) backed by new login store state (
viewState) and updated login action payload/response handling. - Add a new “User Two Factor Device” module under Users (list + details/creation + verification via QR code).
- Introduce a shared
QRCodeweb component and update QR login dialog to use it; update docs and refresh dependencies/lockfile.
Reviewed changes
Copilot reviewed 27 out of 29 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Large dependency resolution updates; adds otplib; switches @openforis/arena-server to a local file reference. |
| webapp/views/Guest/views/Login/Login.scss | Styles for 2FA token description text. |
| webapp/views/Guest/views/Login/Login.js | Adds 2FA token step UI and passes token to login action. |
| webapp/views/App/views/Users/Users.js | Adds conditional (experimental) route to the new 2FA device module. |
| webapp/views/App/views/Users/UserTwoFactorDevice/useColumns.js | Defines columns for the 2FA devices table. |
| webapp/views/App/views/Users/UserTwoFactorDevice/index.js | Exports the module entrypoint. |
| webapp/views/App/views/Users/UserTwoFactorDevice/Module.js | Adds nested routing (list/details) for 2FA devices. |
| webapp/views/App/views/Users/UserTwoFactorDevice/List.js | Implements the 2FA devices list table + row navigation. |
| webapp/views/App/views/Users/UserTwoFactorDevice/HeaderLeft.js | Adds “New” button navigation for creating a device. |
| webapp/views/App/views/Users/UserTwoFactorDevice/Details.js | Implements device creation, QR display, and token verification UX. |
| webapp/views/App/Header/QRCodeLoginDialog/QRCodeLoginDialog.js | Switches to shared QRCode component. |
| webapp/store/login/state.js | Adds viewState + ViewState enum to drive 2FA login step. |
| webapp/store/login/reducer.js | Adds handlers to reset and update login viewState. |
| webapp/store/login/actions.js | Updates login action to send/handle 2FA token and switch view state. |
| webapp/components/index.js | Exports the new QRCode component. |
| webapp/components/QRCode.js | New shared QR code wrapper component. |
| webapp/app/appModules.js | Adds new module paths for 2FA devices and nested submodules. |
| webapp/app/appErrorsMiddleware.js | Ignores global service error dispatching for 2FA verify endpoint. |
| package.json | Switches @openforis/arena-server dependency to ../arena-server. |
| core/userTwoFactorDevice/userTwoFactorDevice.js | Adds core model helpers for 2FA device objects. |
| core/userTwoFactorDevice/index.js | Exports the 2FA device model. |
| core/i18n/resources/ru/common.js | Adds login 2FA token strings (RU). |
| core/i18n/resources/mn/common.js | Adds login 2FA token strings (MN). |
| core/i18n/resources/es/common.js | Adds login 2FA token strings (ES). |
| core/i18n/resources/en/common.js | Adds login 2FA token strings (EN). |
| core/auth/authorizer.js | Adds authorization helper for managing 2FA devices. |
| README.md | Updates PostGIS Docker image version used for local setup. |
| CONTRIBUTING.md | Updates PostGIS Docker image version used for local setup. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 43 out of 45 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 50 out of 52 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|



No description provided.