@email-otp-auth/redis
v1.0.0
Published
Otp based Authentication package made to streamline the process of otp based Authentication
Downloads
6
Maintainers
Readme
Email OTP Auth/Redis
This package provies a stremaline way for authentication service using email OTP.This service utilizes Redis for storing and verifying OTPs and a mail server for sending OTPs via email.
Configuration
Mail Server Configuration
Make sure to configure the mail server settings by providing the necessary information in the MailServerConfiguration
interface. The interface is defined as follows:
interface MailServerConfiguration {
host: string; // The host name of the mail server.
port: number; // The port number for connecting to the mail server.
email: string; // The email address used for authentication.
pass: string; // The app password associated with the email address for authentication. You can refer google for app password.
name: string; // The name associated with the sender of the email.
subject: string; // The subject of the email.
body: string; // The body or content of the email with template {{otp}} for otp replacement.
}
Redis Configuration
Set up a Redis DB URL.
Auth Class Configruation
const auth = new Auth('YOUR_REDIS_URL', mailServerConfig);
Usage
Generate OTP
To generate and send an OTP to a specified email address, use the following code snippet:
const email = '[email protected]';
try {
await auth.generateOTP(email);
console.log(`OTP sent successfully to ${email}`);
} catch (error) {
console.error(`Error sending OTP: ${error.message}`);
}
Verify OTP
To verify an OTP for a specified email address, use the following code snippet:
const email = '[email protected]';
const userEnteredOTP = '123456'; // Replace with the actual OTP entered by the user
try {
const isOTPValid = await auth.verifyOTP(email, userEnteredOTP);
if (isOTPValid) {
console.log('OTP is valid');
} else {
console.log('Invalid OTP');
}
} catch (error) {
console.error(`Error verifying OTP: ${error.message}`);
}
License
This project is licensed under the MIT License - see the LICENSE file for details.