Two-factor authentication (2FA) is a multifactor security process where users must authenticate their identity with two different means. This ensures better protection of secured assets and information.
Traditional username and password combinations are prone to hacking and getting hacked has been on the rise. Implementing 2FA authentication will prevent hackers from accessing your accounts even if your password is stolen. 2FA is a recommended practice for securing all your online accounts and devices to protect sensitive information losses.
You will need a different set of components with features ranging from creating the secret codes, accessing and authenticating.
OTP:
Time-based One-Time Password involves generating a one-time password from a shared secret key and the current timestamp using cryptographic algorithms. These libraries will help you generate secrete one-time passwords
andOTPby andOTP
[Unmaintained] Open source two-factor authentication for Android
andOTPby andOTP
Java 3685 Version:v0.9.0.1 License: Permissive (MIT)
java-totpby samdjstevens
A java library for implementing Time-based One Time Passwords for Multi-Factor Authentication.
java-totpby samdjstevens
Java 309 Version:Current License: Permissive (MIT)
two-factor-authby j256
Two Factor Authentication Java code implementing the Time-based One-time Password Algorithm
two-factor-authby j256
Java 279 Version:two-factor-auth-1.3 License: Permissive (ISC)
java-otpby jchambers
A one-time password (HOTP/TOTP) library for Java
java-otpby jchambers
Java 394 Version:java-otp-0.4.0 License: Permissive (MIT)
androidtokenby markmcavoy
TOTP and HOTP Token for Andriod Devices
androidtokenby markmcavoy
Java 64 Version:03.00 License: Others (Non-SPDX)
SMS
Typically the OTP codes are sent to the user's mobile phone using SMS. This also helps to validate the user's mobile number correctness. The user can then enter the secret code into the application to complete the multifactor authentication. The below libraries will help in sending SMS from your application.
smsapi-java-clientby smsapi
SMSAPI Java client that allows you to send messages and administrate your SMSAPI account.
smsapi-java-clientby smsapi
Java 15 Version:Current License: Others (Non-SPDX)
sms-senderby dezhik
Java library for sending SMS via sms.ru provider.
sms-senderby dezhik
Java 7 Version:Current License: No License
java-send-sms-with-smslibby hoai
Code to Send SMS From PC to Mobile using Internet
java-send-sms-with-smslibby hoai
Java 1 Version:Current License: No License
The unique generated one-time password is sent via email to the user. The user uses the code from the email and enters the code into the application to confirm the authentication.
simple-java-mailby bbottema
Simple API, Complex Emails (Jakarta Mail smtp wrapper)
simple-java-mailby bbottema
Java 1093 Version:8.1.1 License: Permissive (Apache-2.0)
mailgunby sargue
Java library to easily send emails using the Mailgun service
mailgunby sargue
Java 139 Version:v1.10.0 License: Permissive (MIT)
Biometric Authentication
Using Biometrics for authentication has been made easy with mobile devices. Biometrics can include different choices, such as using fingerprints, voice, and face as the secondary authentication mechanism.
Android-Goldfingerby infinum
Android library to simplify Biometric authentication implementation.
Android-Goldfingerby infinum
Java 645 Version:v2.0.1 License: Permissive (Apache-2.0)
react-native-biometricsby SelfLender
React Native module for iOS and Android biometrics
react-native-biometricsby SelfLender
Java 525 Version:3.0.0 License: Permissive (MIT)
fingerbloxby jorenham
Portable secure biometric authentication using your smartphone camera
fingerbloxby jorenham
Java 14 Version:v1.0 License: Strong Copyleft (GPL-3.0)
android-biometricpromptby Kieun
A sample app for demonstrating biometric prompt for Android
android-biometricpromptby Kieun
Java 63 Version:Current License: Permissive (Apache-2.0)
Push Notifications
Typically, push notifications are sent to your mobile app to authorize login requests. It will include the details of the access device details and once authorized, the login to the application is allowed. Below libraries help in implementing the push notification-based authorization.
React Native Local and Remote Notifications
react-native-push-notificationby zo0r
Java 6608 Version:8.1.1 License: Permissive (MIT)
android-super-gluuby GluuFederation
Push-notification mobile app for two-factor authentication (2FA) with the Gluu Server
android-super-gluuby GluuFederation
Java 6 Version:Current License: Permissive (Apache-2.0)
java-apnsby notnoop
Java Apple Push Notification Service Provider
java-apnsby notnoop
Java 1785 Version:apns-1.0.0.Beta3 License: Permissive (BSD-3-Clause)
pushyby jchambers
A Java library for sending APNs (iOS/macOS/Safari) push notifications
pushyby jchambers
Java 1640 Version:pushy-0.15.2 License: Permissive (MIT)
react-native-onesignalby OneSignal
React Native Library for OneSignal Push Notifications Service
react-native-onesignalby OneSignal
TypeScript 1506 Version:5.0.0-beta.1 License: Others (Non-SPDX)