Flutter插件mono_prove的使用_Mono Prove 是一款客户认证产品

Flutter插件mono_prove的使用方法

Mono Prove Flutter SDK 是一种快速且安全的方式,让你的应用程序能够从内部集成用户认证。Mono Prove 是一款客户认证产品,通过MDN和面部识别技术为业务提供更快的客户认证流程,并防止欺诈性注册。

对于访问客户账户和与Mono的API(身份验证、交易、收入、直接支付)进行交互,请使用服务器端的文档

文档

有关Mono Prove的完整信息,请参阅文档

开始使用

  1. Mono网站上注册并获取你的公钥和私钥。
  2. 调用初始化接口来获取一个sessionId

安装指南

确保你已经在机器上安装了Flutter SDK

通过以下命令安装:

flutter pub add mono_prove

额外设置

iOS

  • 添加键Privacy - Camera Usage Description及其描述到Info.plist文件中。
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
  • Podfile文件中添加以下内容:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)

    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: PermissionGroup.camera
        'PERMISSION_CAMERA=1',
      ]
    end
  end
end

Android

android/app/src/main/AndroidManifest.xml文件中声明相机权限:

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

使用方法

导入Mono Prove SDK

import 'package:mono_prove/mono_prove.dart';

创建ProveConfiguration

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
  reference: 'testref', // 可选参数
  onEvent: (event) {
    print(event);
  }, // onEvent函数
  onClose: () {
    print('Widget closed.');
  }, // onClose函数
);

显示Widget

ElevatedButton(
  onPressed: () {
    MonoProve.launch(
      context,
      config: config,
      showLogs: true,
    );
  },
  child: Text('Launch Prove Widget'),
)

配置选项

  • sessionId
  • onSuccess
  • onClose
  • onEvent
  • reference

sessionId

String: 必须 这是调用初始化接口后返回的session ID。

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
);

onSuccess

void Function(): 必须 当用户成功验证其身份时调用该闭包。

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
);

onClose

void Function(): 可选 当用户明确退出Mono Prove流程时调用该可选闭包。它不接受任何参数。

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
  onClose: () {
    print('Widget closed.');
  }, // onClose函数
);

onEvent

void Function(ProveEvent): 可选 当Mono Prove流程中发生某些事件时调用此可选闭包,例如用户打开或关闭小部件。这使您的应用程序能够进一步了解用户在使用Mono Prove流程时发生了什么。

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
  onEvent: (event) {
    print(event);
  }, // onEvent函数
);

reference

String: 可选 传递引用到配置中将在所有onEvent调用中返回。

final config = ProveConfiguration(
  sessionId: 'PRV...', // sessionId
  onSuccess: () {
    print('Successfully verified.');
  }, // onSuccess函数
  reference: 'random_string',
);

API引用

MonoProve对象

MonoProve对象提供了用于与Mono Prove Widget轻松交互的方法。

class MonoProve {
  static Future<void> launch(BuildContext context, {required ProveConfiguration config, bool showLogs = false});
}

ProveConfiguration

配置选项传递给MonoProve对象的不同启动方法。

class ProveConfiguration {
  final String sessionId; // 必须
  final VoidCallback onSuccess; // 必须
  final VoidCallback? onClose; // 可选
  final void Function(ProveEvent)? onEvent; // 可选
  final String? reference; // 可选
}

ProveEvent

class ProveEvent {
  final String eventType; // 事件类型
  final String? reference; // 传递的引用
  final String? pageName; // 小部件退出的页面名称
  final String? errorType; // 小部件抛出的错误类型
  final String? errorMessage; // 描述错误的错误消息
  final String? reason; // 小部件退出的原因
  final DateTime timestamp; // 事件的时间戳
}

支持

如果你在使用Mono Prove Flutter SDK或与Mono集成时遇到问题,请联系我们support@mono.co或加入我们的Slack频道。我们非常自豪于我们的服务水平,并乐意帮助你完成Mono的集成。

贡献

如果你想为Mono Prove Flutter SDK做出贡献,请务必阅读我们的贡献者指南

许可证

更多许可证信息请查看MIT许可证

示例代码

import 'dart:developer';

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

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Mono Prove Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final config = ProveConfiguration(
    sessionId: 'PRV...',
    onSuccess: () {
      log('Successfully verified.');
    },
    reference: DateTime.now().millisecondsSinceEpoch.toString(),
    onEvent: (event) {
      log(event.toString());
    },
    onClose: () {
      log('Widget closed.');
    },
  );

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            MonoProve.launch(
              context,
              config: config,
              showLogs: true,
            );
          },
          child: Text('Launch Prove Widget'),
        ),
      ),
    );
  }
}

更多关于Flutter插件mono_prove的使用_Mono Prove 是一款客户认证产品的实战教程也可以访问 https://www.itying.com/category-92-b0.html

回到顶部