搜索插件、代码仓与 APP 分类

插件详情v3.2.0

email_otp

一个快速且简单的电子邮件身份验证OTP发送和验证Flutter包。

AndroidiOSmacOSWindowsLinux
近 30 天下载
1850
喜欢数
115
Pub 分数
160

安装插件

flutter pub add email_otp

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个轻量级的 Flutter 包,用于发送和验证基于电子邮件的一次性密码(OTP),以简化用户身份验证。它支持快速集成电子邮件 OTP 流程,设置简单,适用于 Android、iOS、macOS、Windows 和 Linux 等多个平台。该包处理 OTP 生成和验证的后端通信,减少开发安全登录系统所需的时间。非常适合需要安全无密码登录或账户验证的应用。

适合场景

  • 无密码登录
  • 账户验证
  • 安全的用户身份验证
  • 双因素认证
  • 重置忘记的密码

主要特点

  • 简单的OTP生成
  • 基于电子邮件的验证
  • 跨平台支持
  • 最小化样板代码
  • 与 Firebase 或自定义后端轻松集成

适合对象

  • 开发安全认证的开发者
  • 需要快速OTP工作流的应用程序
  • 使用电子邮件作为主要身份的项目
  • 初创企业优先考虑快速功能部署
  • 避免复杂认证基础设施的团队

使用建议

  • 需要一个后端服务来处理OTP
  • 依赖可靠的电子邮件投递
  • 不适合高数量交易邮件
  • 生产环境中可能需要速率限制
  • 用户体验取决于电子邮件提供商的可靠性

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Email OTP is a Flutter package designed to simplify email authentication using one-time passwords (OTPs). With Email OTP, you can effortlessly generate OTPs and send them to users' email addresses, ensuring secure identity verification. This package offers an efficient and secure method for incorporating email-based OTP authentication into your Flutter applications.

Email OTP Banner

GitHub Sponsor

Table of Contents

Configuration

The simplest way to 🛠️ configure the EmailOTP package is by calling the config method.

void main() {
  EmailOTP.config(
    appName: 'MyApp',
    otpType: OTPType.numeric,
    emailTheme: EmailTheme.v1,
  );
}

SMTP Configuration (Required)

⚠️ IMPORTANT: As of version 3.1.0, this package no longer uses a default server. You MUST configure your own SMTP server to send emails.

  EmailOTP.setSMTP(
    host: 'smtp.gmail.com',
    emailPort: EmailPort.port587,
    secureType: SecureType.tls,
    username: 'your-email@gmail.com',
    password: 'your-app-password',
  );

Note: For Gmail, use an App Password if 2-Step Verification is enabled.

Advanced Configuration

For more control over the OTP generation and email settings, you can pass various parameters to the config method.

void main() {
  EmailOTP.config(
    appName: 'App Name',
    otpType: OTPType.numeric,
    expiry : 30000,
    emailTheme: EmailTheme.v6,
    appEmail: 'me@rohitchouhan.com',
    otpLength: 6,
    headers: {
      'Reply-To': 'support@rohitchouhan.com'
    }
  );
}

Parameters

  1. host: The hostname of your SMTP server.
  2. emailPort: The port number used by the SMTP server. Supported values include:
    • EmailPort.port25
    • EmailPort.port465
    • EmailPort.port587
    • EmailPort.port1025 (For MailHog/Local Testing)
  3. secureType: The type of security used by the SMTP server. Supported values include:
    • SecureType.none
    • SecureType.tls
    • SecureType.ssl
  4. username: The username for your SMTP server account.
  5. password: The password for your SMTP server account.

By configuring these parameters, you can ensure that your application is able to send OTP emails securely and efficiently.

Themes

Theme Theme Preview
EmailTheme.v1
EmailTheme.v2
EmailTheme.v3
EmailTheme.v4
EmailTheme.v5
EmailTheme.v6
EmailTheme.v7
EmailTheme.v8
EmailTheme.v9
EmailTheme.v10

Template (Optional)

You can also customize the email 🌐 template used to send the OTP. Use the setTemplate method to provide your own HTML template.

void main() {
  EmailOTP.config();
  EmailOTP.setTemplate(
    template: '''
    <div style="background-color: #f4f4f4; padding: 20px; font-family: Arial, sans-serif;">
      <div style="background-color: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);">
        <h1 style="color: #333;">{{appName}}</h1>
        <p style="color: #333;">Your OTP is <strong>{{otp}}</strong></p>
        <p style="color: #333;">This OTP is valid for 5 minutes.</p>
        <p style="color: #333;">Thank you for using our service.</p>
      </div>
    </div>
    ''',
  );
}

Parameters

  • template: A string containing the HTML content of your custom email template. Use placeholders such as {{appName}} and {{otp}} to dynamically insert the application name and OTP respectively.

By configuring these parameters and using a custom template, you can ensure that your OTP emails are tailored to match your application's branding and style.

Sending OTP

To 📧 send an 🔐 OTP to a user's email address, use the sendOTP method. This method takes the recipient's email address as a parameter.

  bool isSent = await EmailOTP.sendOTP(email: emailController.text);
  if (!isSent) {
    print(EmailOTP.lastError); // Prints specific error (e.g. SMTP Auth failed)
  }

Parameters

  • email: The recipient's email address where the OTP will be sent.

Resending OTP

If a user requests a new OTP because they didn't receive the first one, you can use resendOTP instead of generating a new one. This will re-send the existing valid OTP. If it has already expired, a new one will automatically be generated.

  EmailOTP.resendOTP(email: emailController.text);

Verifying OTP

To verify an 🔐 OTP entered by the user, use the verifyOTP method. This method takes the OTP entered by the user as a parameter and returns a boolean indicating whether the OTP is correct.

  EmailOTP.verifyOTP(otp: otpController.text)

Parameters

  • otp: The OTP entered by the user.

Get OTP

This code will print the OTP generated by the getOTP() method.

  print(EmailOTP.getOTP());

Is Expired

This method will helps you to validate your otp expiry time.

  print(EmailOTP.isExpired());

Example

👉 For a complete example, refer to the Email OTP package documentation.

Report bugs or issues

You are welcome to open a ticket on github if any 🐞 problems arise. New ideas are always welcome.

Contributors

Rahul Chouhan
Chouhan Rahul

Copyright © 2024 Rohit Chouhan. Licensed under the MIT LICENSE

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目

暂无相关数据。