Flutter身份验证插件berbix_flutter的使用

Flutter身份验证插件berbix_flutter的使用

Berbix Flutter插件是一个围绕Berbix原生移动SDK(适用于Android和iOS)的Dart包装器。它使Berbix的客户能够在Flutter环境中快速实现一流的实名验证。如果你对使用Berbix进行身份验证感兴趣且还不是Berbix的客户,可以访问berbix.com了解更多详情。

获取客户端令牌

为了开始集成,你需要生成一个短期的客户端令牌。Berbix Verify API需要在你的后端进行集成。请参阅创建交易文档。

添加依赖

首先,我们需要将berbix_flutter作为依赖项添加到项目中。你可以在项目目录中执行以下命令:

flutter pub add berbix_flutter

这将更新你的pubspec.yml文件,如下所示:

# 其他设置
# ...
dependencies:
  flutter:
    sdk: flutter
  berbix_flutter: ^0.0.2

在更新配置之后,我们可以通过运行以下命令来获取新的包:

flutter pub get

集成

一旦依赖项被获取,我们就可以开始使用新包了。首先,我们需要在要启动Berbix流程的.dart文件中导入该包:

import 'package:berbix_flutter/berbix_flutter.dart';

设置客户端令牌

像任何其他Berbix SDK一样,Flutter SDK需要一个客户端令牌才能代表用户执行交易。你可以查看我们的服务器端文档以了解如何生成客户端令牌。

一旦你有了有效的客户端令牌,可以像这样传递给SDK:

// 替换为有效的令牌!
BerbixFlutter.setClientToken("client_token_for_session"); 

完成交易

一旦设置了客户端令牌,你可以通过调用以下方法来执行交易:

BerbixFlutter.startFlow();

此时,SDK将处理导航,直到用户完成或取消验证流程。

处理错误/异常

在设置客户端令牌时,如果缺少客户端令牌,可能会遇到BerbixMissingClientTokenError错误。如果令牌存在但存在问题,你会看到BerbixInvalidClientTokenException异常。

try {
  var result = await BerbixFlutter.setClientToken("your-client-token-here");
} on BerbixMissingClientTokenError catch (error) {
  // 忘记添加客户端令牌
} catch (error) {
  // 其他地方出现问题
  FlutterError.presentError(error);
}

在展示流程时,你可能会遇到其他异常,可以像这样捕获它们:

try {
  var result = await BerbixFlutter.startFlow();
} catch (error) {
  // 在完成流程时出错
  FlutterError.presentError(error);
  // 错误区域在 error.code 中 ("user", "api", "camera", "state", "berbix")
  // 详细的错误消息在 error.details 中
}

虽然你不需要担心每个平台上的错误类型,但还是值得回顾一下我们iOSAndroid SDK生成的错误类型,因为Flutter插件只会返回这些错误的包装版本。

完整示例Demo

下面是一个完整的示例Demo,展示了如何在Flutter应用中使用Berbix Flutter插件进行身份验证。

import 'package:flutter/material.dart';
import 'package:berbix_flutter/berbix_flutter.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Berbix Flutter Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              try {
                // 设置客户端令牌
                await BerbixFlutter.setClientToken("your-client-token-here");

                // 开始验证流程
                var result = await BerbixFlutter.startFlow();

                // 打印结果
                print(result);
              } on BerbixMissingClientTokenError catch (error) {
                // 忘记添加客户端令牌
                print('客户端令牌缺失');
              } catch (error) {
                // 其他地方出现问题
                print('发生错误: $error');
              }
            },
            child: Text('开始验证'),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


berbix_flutter 是一个用于在 Flutter 应用中集成 Berbix 身份验证服务的插件。Berbix 提供了一系列的身份验证工具,包括身份证验证、面部识别等,以帮助开发者确保用户的真实身份。

以下是如何在 Flutter 项目中使用 berbix_flutter 插件的步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  berbix_flutter: ^1.0.0 # 请检查最新版本

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

2. 初始化 Berbix

在应用启动时,你需要初始化 Berbix。通常,你可以在 main.dart 中完成这个步骤。

import 'package:berbix_flutter/berbix_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Berbix
  await BerbixFlutter.initialize(
    apiKey: 'YOUR_API_KEY', // 替换为你的 Berbix API Key
    clientSecret: 'YOUR_CLIENT_SECRET', // 替换为你的 Berbix Client Secret
  );

  runApp(MyApp());
}

3. 创建 Berbix 身份验证流程

你可以创建一个函数来启动 Berbix 的身份验证流程。通常,这个流程会打开一个界面,用户可以在其中上传身份证和进行面部识别。

Future<void> startBerbixFlow() async {
  try {
    // 启动 Berbix 身份验证流程
    final result = await BerbixFlutter.startFlow(
      clientToken: 'YOUR_CLIENT_TOKEN', // 替换为你的 Berbix Client Token
    );

    // 处理身份验证结果
    if (result.success) {
      print('身份验证成功');
    } else {
      print('身份验证失败: ${result.error}');
    }
  } catch (e) {
    print('发生错误: $e');
  }
}

4. 在 UI 中触发身份验证

你可以在应用的任何地方触发身份验证流程,例如通过一个按钮点击事件。

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Berbix 身份验证'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: startBerbixFlow,
            child: Text('开始身份验证'),
          ),
        ),
      ),
    );
  }
}

5. 处理身份验证结果

startBerbixFlow 函数中,你可以根据 result 对象来处理身份验证的成功或失败情况。result.success 会告诉你身份验证是否成功,而 result.error 会提供失败的具体原因。

6. 获取用户数据(可选)

如果身份验证成功,你可以通过 Berbix 的 API 获取用户的身份信息。你需要使用 clientToken 来请求用户数据。

Future<void> fetchUserData() async {
  try {
    final userData = await BerbixFlutter.fetchUserData(
      clientToken: 'YOUR_CLIENT_TOKEN',
    );

    // 处理用户数据
    print('用户数据: $userData');
  } catch (e) {
    print('获取用户数据失败: $e');
  }
}
回到顶部