Flutter Cafe Bazaar认证插件cafebazaar_auth的使用
Flutter Cafe Bazaar认证插件cafebazaar_auth的使用
使用此库,您可以在无需实现本地登录的情况下始终访问您的用户。首先,这减少了由于统一登录解决方案而带来的不确定性、安全性和机器人用户问题。它还通过电子邮件或短信进行用户身份验证的成本降低。此外,如果用户卸载或更换设备,您不会失去应用中的用户历史和数据。
在第一步中,巴扎(Bazaar)为您提供了一个唯一的用户ID,该ID对于每个用户/应用来说是永久不变的。更多关于用户的信息,如用户名、电子邮件等将在未来版本中添加,这些功能将支持用户权限特性。
要开始使用CafeBazaarAuth
,您需要将其包添加到您的pubspec.yaml
文件中:
dependencies:
cafebazaar_auth: ^1.0.4
然后导入它:
import 'package:cafebazaar_auth/cafebazaar_auth.dart';
应用内登录
为了认证用户,您需要使用signIn
函数:
BazaarAccount? account = await CafeBazaarAuth.signIn();
print(account?.id ?? '-');
目前,您只能检索默认信息,包括accountID
。更多功能将在未来版本中添加。
如果用户已授予登录访问权限,返回的account
将不为null,您可以从account
模型中读取数据。
如果用户已经授予了访问权限,可以使用以下getter来获取最新数据:
BazaarAccount? account = await CafeBazaarAuth.lastSignedInAccount;
如果用户未授予登录访问权限,account
值将为null。
要在您的应用中显示巴扎登录按钮,您可以使用以下小部件:
CafeBazaarLoginButton(
text: "登录巴扎", // 可选参数
textStyle: TextStyle(color: Colors.white), // 可选参数
iconSize: 28, // 可选参数,默认为36
onPressed: signIn, // 必须参数
)
您也可以设计并使用自己的小部件。
应用内存储
要保存用户数据,您需要调用以下方法:
String? savedData = await CafeBazaarAuth.saveData("我的字符串数据");
您可以通过以下getter来访问保存的数据:
String? savedData = await CafeBazaarAuth.savedData;
安全注意事项
为了防止网络钓鱼和信息盗窃,使用以下getter以确保用户设备上安装了正确的巴扎版本:
bool? isBazaarInstalled = CafeBazaarAuth.isBazaarInstalledOnDevice;
巴扎在客户端设备上的状态
要确保用户设备上的巴扎应用程序版本支持巴扎登录和应用内存储,使用以下getter:
CafeBazaarUpdateInfo? updateInfo = CafeBazaarAuth.isNeededToUpdateBazaar;
print(updateInfo?.needToUpdateForAuth);
print(updateInfo?.needToUpdateForStorage);
如果巴扎应用未安装,您可以使用以下方法:
CafeBazaarAuth.showInstallBazaarView();
如果需要更新巴扎应用,使用以下方法:
CafeBazaarAuth.showUpdateBazaarView();
完整示例代码
import 'package:cafebazaar_auth/cafebazaar_auth.dart';
import 'package:cafebazaar_auth/cafebazaar_login_button.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
signIn() async {
// 尝试登录
CafeBazaarAccount? account = await CafeBazaarAuth.signIn();
print(account?.id ?? '-'); // 打印账户ID,如果没有账户则打印'-'
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Center(
child: Directionality(
textDirection: TextDirection.rtl,
child: Container(
width: 180,
child: CafeBazaarLoginButton(
onPressed: signIn,
),
),
),
),
),
);
}
}
更多关于Flutter Cafe Bazaar认证插件cafebazaar_auth的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html