Flutter身份验证插件new_raven_verification的使用

Flutter身份验证插件new_raven_verification的使用

KYC_VERIFICATION

一个用于验证BVN/NIN的新Flutter包。


iOS要求

ios/Runner/info.plist文件中更新以下内容:

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

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" />

<!-- 添加此段代码以在Google Play商店安装时下载mlkit -->
<application ...>
    ...
    <meta-data
        android:name="com.google.mlkit.vision.DEPENDENCIES"
        android:value="face" >
</application>

使用方法

首先,确保已导入必要的依赖项:

import 'package:flutter/material.dart';
import 'package:new_raven_verification/new_raven_verification.dart'; // 假设插件名为new_raven_verification

接下来,使用以下代码启动身份验证插件:

void startVerification(BuildContext context) {
  KycConfig.startPlugin(
    context,
    KycConfig.getInstance(
      atlasUrl: "https://atlas.base_url.com", // Atlas服务器地址
      clientNumber: "client_bvn", // 客户端BVN(可选)
      baseColor: const Color(0xFF0B8376), // 自定义主色调
      metaData: "{meta data}", // 发送到服务器的元数据
      bearer: "PUBLIC_KEY", // Atlas上的公钥
      onErrorMessage: (String error) {
        // 错误回调
        print("Error: $error");
      },
      failiure: (dynamic data) {
        // 验证失败回调
        print("Verification failed with data: $data");
      },
      success: (dynamic data) {
        // 验证成功回调
        print("Verification successful with data: $data");
      },
    ),
  );
}

注意事项

  • atlasUrl:Atlas服务器地址。
  • clientBVN:客户端BVN(可选),如果未提供或为空,插件会自动收集BVN。
  • baseColor:可以自定义插件的主题颜色以匹配应用的主色调。
  • metaData:发送到服务器的元数据。
  • bearerToken:在Atlas上注册以获取您的公钥。
  • onErrorMessage:错误回调,所有错误都会通过此回调传递,并且插件依赖于应用的Toast功能来显示错误信息。
  • success:验证成功的回调。
  • failiure:验证失败的回调。

示例代码完整示例

以下是完整的示例代码,展示如何集成并使用该插件:

import 'package:flutter/material.dart';
import 'package:new_raven_verification/new_raven_verification.dart'; // 假设插件名为new_raven_verification

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("BVN Verification Example")),
        body: Center(
          child: ElevatedButton(
            onPressed: () => startVerification(context),
            child: Text("Start Verification"),
          ),
        ),
      ),
    );
  }
}

void startVerification(BuildContext context) {
  KycConfig.startPlugin(
    context,
    KycConfig.getInstance(
      atlasUrl: "https://atlas.base_url.com",
      clientNumber: "client_bvn",
      baseColor: const Color(0xFF0B8376),
      metaData: "{meta data}",
      bearer: "PUBLIC_KEY",
      onErrorMessage: (String error) {
        print("Error: $error");
      },
      failiure: (dynamic data) {
        print("Verification failed with data: $data");
      },
      success: (dynamic data) {
        print("Verification successful with data: $data");
      },
    ),
  );
}
1 回复

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


new_raven_verification 是一个用于 Flutter 应用程序的身份验证插件,通常用于处理用户登录、注册、身份验证等操作。以下是如何在 Flutter 项目中使用 new_raven_verification 插件的基本步骤。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  new_raven_verification: ^1.0.0  # 请根据实际版本号进行替换

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在需要使用 new_raven_verification 的 Dart 文件中导入插件。

import 'package:new_raven_verification/new_raven_verification.dart';

3. 初始化插件

在使用插件之前,通常需要对其进行初始化。初始化通常在 main.dart 或应用程序启动时进行。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await NewRavenVerification.initialize();
  runApp(MyApp());
}

4. 使用插件进行身份验证

new_raven_verification 插件通常提供了一些方法来处理用户身份验证,例如登录、注册、验证等。

示例:用户登录

void loginUser(String email, String password) async {
  try {
    final result = await NewRavenVerification.login(email, password);
    if (result.success) {
      print('Login successful');
      // 处理登录成功后的逻辑,例如导航到主页面
    } else {
      print('Login failed: ${result.message}');
      // 处理登录失败的逻辑
    }
  } catch (e) {
    print('Error during login: $e');
    // 处理异常情况
  }
}

示例:用户注册

void registerUser(String email, String password) async {
  try {
    final result = await NewRavenVerification.register(email, password);
    if (result.success) {
      print('Registration successful');
      // 处理注册成功后的逻辑,例如自动登录或导航到登录页面
    } else {
      print('Registration failed: ${result.message}');
      // 处理注册失败的逻辑
    }
  } catch (e) {
    print('Error during registration: $e');
    // 处理异常情况
  }
}

示例:验证用户

void verifyUser(String token) async {
  try {
    final result = await NewRavenVerification.verifyToken(token);
    if (result.success) {
      print('Verification successful');
      // 处理验证成功后的逻辑,例如导航到主页面
    } else {
      print('Verification failed: ${result.message}');
      // 处理验证失败的逻辑
    }
  } catch (e) {
    print('Error during verification: $e');
    // 处理异常情况
  }
}

5. 处理用户状态

在身份验证过程中,通常需要处理用户的登录状态。你可以使用 ProviderRiverpodBloc 等状态管理工具来管理用户状态。

示例:使用 Provider 管理用户状态

class UserProvider extends ChangeNotifier {
  bool _isLoggedIn = false;

  bool get isLoggedIn => _isLoggedIn;

  void login() {
    _isLoggedIn = true;
    notifyListeners();
  }

  void logout() {
    _isLoggedIn = false;
    notifyListeners();
  }
}

然后在 Widget 中使用 Provider 来监听用户状态:

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: (_) => UserProvider(),
      child: MaterialApp(
        home: Consumer<UserProvider>(
          builder: (context, userProvider, child) {
            return userProvider.isLoggedIn ? HomePage() : LoginPage();
          },
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!