Flutter认证插件flulm_auth的使用
Flutter认证插件flulm_auth的使用
集成
iOS
- 设置工程最低支持 iOS 10.0: 在 Xcode 中打开工程 -> Targets -> General -> Development Info。
- 确保自定义的 URL Types 的 identifier 为
lmpay
。具体参考 LMPay 工程配置。 - 在
ios/Podfile
文件中添加use_frameworks!
,如下所示:
target 'Runner' do
use_frameworks!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
示例代码
以下是一个完整的示例代码,展示如何使用 flulm_auth
插件进行授权和支付。
import 'package:flulm_auth/flulm_auth.dart' as flulmAuth;
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
home: MyApp(),
));
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 存储回调代码
String _code = 'Unknown';
// 应用ID
String _appId = "1911131949173836111";
// 是否已安装乐马支付App
bool _isInstalled = false;
[@override](/user/override)
void initState() {
super.initState();
// 注册应用ID
flulmAuth.register(appId: _appId);
// 监听授权回调
flulmAuth.responseFromAuth.listen((data) {
setState(() {
_code = data.code;
});
});
// 监听支付回调
flulmAuth.responseFromPay.listen((data) {
setState(() {
_code = data.toString();
});
});
// 检查是否安装了乐马支付App
flulmAuth.isLemaPayInstalled().then((value) => setState(() => _isInstalled = value));
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('授权支付Demo'),
),
body: Padding(
padding: const EdgeInsets.all(24.0),
child: Column(
children: [
// 显示乐马支付App的安装状态
Row(children: [Text("乐马支付App"), Spacer(), Text(_isInstalled ? "已安装" : "未安装")]),
// 授权和支付按钮
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
ElevatedButton(onPressed: () => sendAuth(context), child: Text("授权")),
ElevatedButton(onPressed: () => sendPay(context), child: Text("支付")),
],
),
// 显示回调代码
Text('callback code= $_code\n'),
],
),
),
);
}
// 发起授权请求
void sendAuth(BuildContext context) async {
print("开始授权=》");
flulmAuth.sendAuth(
mContext: context,
openId: _appId,
supportScan: true,
scope: "login",
isTest: 2,
);
}
// 发起支付请求
void sendPay(BuildContext context) async {
flulmAuth.sendPay(
mContext: context,
openId: _appId,
supportScan: true,
signData:
'eyJhcHBfaWQiOiIxOTAzMDQxOTUyMjY3NzEyNjk0IiwidGltZXN0YW1wIjoxNjA4MDI1MDkxLCJub25jZV9zdHIiOiJiR0lWWGhqbktvZjJMcnpS...=',
isTest: 2,
);
}
}
更多关于Flutter认证插件flulm_auth的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter认证插件flulm_auth的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flulm_auth
并不是一个官方的 Flutter 插件,可能是你提到的 flutter_auth
或 firebase_auth
的拼写错误。假设你指的是 firebase_auth
,这是 Flutter 官方提供的用于与 Firebase Authentication 集成的插件,以下是使用 firebase_auth
进行用户认证的基本步骤。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 firebase_auth
依赖:
dependencies:
flutter:
sdk: flutter
firebase_auth: ^3.3.0
firebase_core: ^1.10.0
然后运行 flutter pub get
来安装依赖。
2. 初始化 Firebase
在你的 Flutter 应用中初始化 Firebase。通常在 main.dart
中进行:
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
3. 使用 firebase_auth
进行用户认证
以下是使用 firebase_auth
进行用户注册、登录和注销的示例代码:
用户注册
import 'package:firebase_auth/firebase_auth.dart';
Future<void> registerUser(String email, String password) async {
try {
UserCredential userCredential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: email,
password: password,
);
print('User registered: ${userCredential.user!.uid}');
} on FirebaseAuthException catch (e) {
print('Error: ${e.message}');
}
}
用户登录
import 'package:firebase_auth/firebase_auth.dart';
Future<void> loginUser(String email, String password) async {
try {
UserCredential userCredential = await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email,
password: password,
);
print('User logged in: ${userCredential.user!.uid}');
} on FirebaseAuthException catch (e) {
print('Error: ${e.message}');
}
}
用户注销
import 'package:firebase_auth/firebase_auth.dart';
Future<void> logoutUser() async {
await FirebaseAuth.instance.signOut();
print('User logged out');
}
获取当前用户
import 'package:firebase_auth/firebase_auth.dart';
User? getCurrentUser() {
return FirebaseAuth.instance.currentUser;
}
4. 监听认证状态
你可以监听用户的认证状态,以便在用户登录或注销时更新 UI:
import 'package:firebase_auth/firebase_auth.dart';
class AuthState extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return HomeScreen();
} else {
return LoginScreen();
}
},
);
}
}