RRAD 多因素认证

特点

  • 注册设备以获取基于时间的OTP。
  • 验证基于时间的OTP注册。
  • 为注册设备的用户ID验证基于时间的OTP。
  • 发送短信OTP。
  • 验证短信OTP。

安装

将包添加到您的 pubspec.yaml

dependencies:
  rrad_mfa: any

然后您需要初始化包实例才能使用它。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  RRADMFA.instance.init(
    appName: 'RRAD', // Short name of your app
    serverUrl: 'https://:6969', // Your server url
    totpApiKey: 'sdvsdvdaszfhvcedsth',   // Your api key for totp
    smsApiKey: 'adsrgetwyetr',   // Your api key for sms otp
  );

  runApp(const MyApp());
}
  • 如果您想使用基于时间的OTP,则需要totpApiKey
  • 如果您想使用短信OTP,则需要smsApiKey

API 规格

首次为基于时间的OTP注册用户ID
TOTPResponse<TOTP?> result = await RRADMFA.instance.register();

如果注册成功,它将返回密钥、用户ID和用于二维码的图像 Unit8List 数据。
使用数据在 Image.memory 小部件中显示图像。

Image.memory(
    result.qrcodeImage!,
);
验证用户ID的基于时间的OTP(之后)

TOTPResponse<TOTP?> result = await RRADMFA.instance.verify(
    userId: '', // userId stored from register response
    otp: '',  // otp taken from user
);
验证用户ID的基于时间的OTP

TOTPResponse<TOTP?> result = await RRADMFA.instance.validate(
    userId: '', // userId stored from register response
    otp: '',  // otp taken from user
);
向手机号码发送短信OTP

目前,我们只向有效的孟加拉国手机号码发送短信OTP。

TOTPResponse<TOTP?> result = await RRADMFA.instance.sendSmsOtp(
    phoneNumber: '', // phone number of user
);
验证发送到手机号码的短信OTP

TOTPResponse<TOTP?> result = await RRADMFA.instance.validateSmsOtp(
    phoneNumber: '', // phone number of user
    otp: '',  // otp taken from user
);

使用 ❤️ 创建,作者:RRAD

GitHub

查看 Github