The provides Email based OTP authentication on default login form. When enabled, this module overrides the default submit on the login form and registers its own ajax callback which generates OTP and sends in email to user who is logging in. User then taken to OTP form where they enter the OTP and the module validates and authenticates the user. The generated OTP is valid for 5 minutes only. No configurations needed just install the module and enable it. I did not find any similar module for Drupal 9 as of now so thought to build one for the community so here it is.
Project link
https://www.drupal.org/project/email_login_otp
Git instructions
git clone --branch '1.0.x' https://git.drupalcode.org/project/email_login_otp.git
PAreview checklist
| Comment | File | Size | Author |
|---|---|---|---|
| #7 | Screenshot_20210922_1313.png | 20.18 KB | avpaderno |
| #6 | Screenshot 2021-09-22 at 3.36.27 PM.png | 86.34 KB | ahmed.raza |
Issue fork projectapplications-3233153
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
avpadernoA service dependencies are defined in the .service.yml file. Services don't use
\Drupalmethods.Those properties aren't used from the class, but they aren't necessary, as the parent class defines similar properties.
To use
$this->t(),create()should contain lines similar to the following ones.This class should be made a service, since it depends on Drupal core services.
Comment #3
ahmed.raza commentedThanks for the review @apaderno, I have made changes you noted and also refactored my code.
Using services via proper dependency injection.
Removed unused properties.
Added above lines.
Made above class a service.
Changes are pushed to branch:
1.0.xComment #4
ahmed.raza commentedComment #5
avpadernoThank you for your contribution! I am going to update your account.
These are some recommended readings to help with excellent maintainership:
You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, also, for your patience with the review process.
Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Comment #6
ahmed.raza commentedThank you @apaderno, please guide me how can I show download information like this in the attached screenshot on my project page?

Comment #7
avpadernoYou need to wait until September 25 before being able to change the value of the Security advisory coverage field in https://www.drupal.org/node/3233129/edit. That is a limit set by the module handing projects on drupal.org. I cannot even edit that field before September 25.