Flutter身份验证插件raven_verification的使用

Flutter身份验证插件raven_verification的使用

KYC_VERIFICATION

这是一个用于验证BVN/NIN的新Flutter插件。

iOS要求

在iOS上使用该插件时,你需要更新ios/Runner/info.plist文件:

<key>NSCameraUsageDescription</key>
<string>允许相机权限</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>允许相册存储捕获的图像</string>

Android要求

在Android上使用该插件时,你需要添加以下权限到你的AndroidManifest.xml文件中:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

## 在应用安装到Play Store时,添加以下内容以使应用下载mlkit
<application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="face" >
</application>

使用方法

首先,在你的Dart文件中导入插件:

import 'package:raven_verification/app_data_helper.dart';

然后,调用KycConfig.startPlugin方法来启动身份验证流程。以下是完整的示例代码:

import 'package:flutter/material.dart';
import 'package:raven_verification/app_data_helper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('BVN/NIN验证'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              KycConfig.startPlugin(
                context,
                KycConfig.getInstance(
                  atlasUrl: "https://atlas.base_url.com", // 替换为你的Atlas URL
                  clientNumber: "client_bvn", // 可选,如果不提供,插件会收集BVN
                  baseColor: const Color(0xFF0B8376), // 自定义插件颜色以匹配你的应用主题色
                  metaData: "{meta data}", // 发送到服务器的数据
                  bearer: PUBLIC_KEY, // 在Atlas上注册后获取的公钥
                  onErrorMessage: (error) {
                    // 错误回调,所有错误都通过此回调发送
                    print("Error: $error");
                  },
                  failiure: (data) {
                    // 验证失败回调
                    print("Verification failed: $data");
                  },
                  success: (data) {
                    // 验证成功回调
                    print("Verification successful: $data");
                  },
                ),
              );
            },
            child: Text('开始验证'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter身份验证插件raven_verification的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter身份验证插件raven_verification的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


raven_verification 是一个用于 Flutter 的身份验证插件,通常用于集成身份验证功能,如手机号码验证、短信验证码等。以下是如何在 Flutter 项目中使用 raven_verification 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 raven_verification 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  raven_verification: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 导入插件

在你的 Dart 文件中导入 raven_verification 插件。

import 'package:raven_verification/raven_verification.dart';

3. 初始化插件

在使用 raven_verification 之前,通常需要对其进行初始化。你可以在 main.dart 或任何合适的地方进行初始化。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 raven_verification
  await RavenVerification.initialize(
    apiKey: 'YOUR_API_KEY',
    // 其他配置参数
  );
  
  runApp(MyApp());
}

4. 使用插件进行验证

你可以使用 raven_verification 插件提供的功能来进行身份验证。例如,发送短信验证码、验证用户输入的验证码等。

class VerificationScreen extends StatefulWidget {
  [@override](/user/override)
  _VerificationScreenState createState() => _VerificationScreenState();
}

class _VerificationScreenState extends State<VerificationScreen> {
  final _phoneController = TextEditingController();
  final _codeController = TextEditingController();

  Future<void> _sendVerificationCode() async {
    String phoneNumber = _phoneController.text;
    
    try {
      await RavenVerification.sendVerificationCode(phoneNumber);
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('验证码已发送')),
      );
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('发送验证码失败: $e')),
      );
    }
  }

  Future<void> _verifyCode() async {
    String phoneNumber = _phoneController.text;
    String code = _codeController.text;
    
    try {
      bool isVerified = await RavenVerification.verifyCode(phoneNumber, code);
      if (isVerified) {
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('验证成功')),
        );
      } else {
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('验证码错误')),
        );
      }
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('验证失败: $e')),
      );
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('身份验证'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _phoneController,
              decoration: InputDecoration(labelText: '手机号码'),
            ),
            SizedBox(height: 16),
            TextField(
              controller: _codeController,
              decoration: InputDecoration(labelText: '验证码'),
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: _sendVerificationCode,
              child: Text('发送验证码'),
            ),
            ElevatedButton(
              onPressed: _verifyCode,
              child: Text('验证'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部