Flutter阿联酋(UAE)密码验证插件ft_uaepass的使用
Flutter阿联酋(UAE)密码验证插件ft_uaepass的使用
介绍
此包允许Flutter应用程序集成阿联酋密码(UAE Pass)。
UAE Pass是一种基于区块链的身份认证服务,使用户能够通过单一身份访问政府和私营部门的服务。
功能
- 使用UAE Pass进行登录。
- 提供符合UAE Pass指南的登录、注册和logo按钮。
- 支持英语和阿拉伯语。
- 按钮支持深色模式、禁用状态和其他自定义选项。
Flutter兼容性
Package版本 | Dart版本 | Flutter版本 |
---|---|---|
0.0.1+1 - 0.0.7+7 | >=3.2.6 <4.0.0 | >=1.17.0 |
开始使用
添加依赖
在pubspec.yaml
文件中添加以下依赖:
dependencies:
ft_uaepass: ^0.0.7+7
然后运行以下命令安装依赖:
flutter pub get
Android设置
- 在
AndroidManifest.xml
文件中更新android:launchMode
为singleTask
:
<activity
.....
android:launchMode="singleTask"
.....
/>
- 添加权限和意图过滤器:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="${redirectUrl without http or https}"
android:scheme="https" />
</intent-filter>
iOS设置
- 在
info.plist
文件中添加CFBundleURLTypes
和LSApplicationQueriesSchemes
:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.example</string>
<key>CFBundleURLSchemes</key>
<array>
<string>example</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>uaepass</string>
<string>uaepassstg</string>
</array>
范围
目前仅支持urn:uae:digitalid:profile:general
范围。
使用方法
登录(测试环境)
await UaePass(
context: context,
redirectUrl: "${redirectUrl}",
state: "${State}",
isProduction: false,
).signIn();
注意:
- 对于Android测试,请执行以下步骤:
- 进入App信息。
- 点击“设为默认”。
- 点击“支持的Web地址”。
- 打开重定向URL的开关。
登录(生产环境)
await UaePass(
context: context,
clientId: "${clientId}",
clientSecret: "${clientSecret}",
redirectUrl: "${redirectUrl}",
state: "${State}",
).signIn();
按钮示例
登录按钮
LoginWithUaePassButton(
onPressed: () async {
UAEPassWebViewResultModel? result = await UaePass(
context: context,
clientId: "${clientId}",
clientSecret: "${clientSecret}",
redirectUrl: "${redirectUrl}",
state: "${State}",
).signIn();
},
)
注册按钮
SignInWithUaePassButton(
onPressed: () async {
UAEPassWebViewResultModel? result = await UaePass(
context: context,
clientId: "${clientId}",
clientSecret: "${clientSecret}",
redirectUrl: "${redirectUrl}",
state: "${State}",
).signIn();
},
)
Logo按钮
LogoButton(
onPressed: () async {
UAEPassWebViewResultModel? result = await UaePass(
context: context,
clientId: "${clientId}",
clientSecret: "${clientSecret}",
redirectUrl: "${redirectUrl}",
state: "${State}",
).signIn();
},
)
更多关于Flutter阿联酋(UAE)密码验证插件ft_uaepass的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter阿联酋(UAE)密码验证插件ft_uaepass的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
ft_uaepass
是一个用于在 Flutter 应用中集成阿联酋(UAE)密码(UAEPASS)验证的插件。UAEPASS 是阿联酋政府提供的一种数字身份认证服务,允许用户通过单一的身份认证访问各种政府和私人服务。
安装 ft_uaepass
插件
首先,你需要在 pubspec.yaml
文件中添加 ft_uaepass
插件的依赖:
dependencies:
flutter:
sdk: flutter
ft_uaepass: ^1.0.0 # 请根据实际版本号进行替换
然后运行 flutter pub get
来安装依赖。
配置 ft_uaepass
插件
在使用 ft_uaepass
插件之前,你需要进行一些配置。
-
获取 UAEPASS 的客户端 ID 和重定向 URI:
- 你需要在 UAEPASS 开发者门户注册你的应用,并获取客户端 ID 和重定向 URI。
-
配置 Android 和 iOS:
-
Android:在
AndroidManifest.xml
文件中添加以下配置:<application> <activity android:name="com.linusu.flutter_web_auth.CallbackActivity"> <intent-filter android:label="flutter_web_auth"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="your_redirect_scheme"/> </intent-filter> </activity> </application>
将
your_redirect_scheme
替换为你的重定向 URI 的 scheme。 -
iOS:在
Info.plist
文件中添加以下配置:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>your_redirect_scheme</string> <key>CFBundleURLSchemes</key> <array> <string>your_redirect_scheme</string> </array> </dict> </array>
同样,将
your_redirect_scheme
替换为你的重定向 URI 的 scheme。
-
使用 ft_uaepass
插件
在你的 Flutter 应用中,你可以按照以下步骤使用 ft_uaepass
插件:
-
导入插件:
import 'package:ft_uaepass/ft_uaepass.dart';
-
初始化插件:
final uaePass = FtUaePass( clientId: 'your_client_id', // 替换为你的客户端 ID redirectUri: 'your_redirect_uri', // 替换为你的重定向 URI scope: 'openid profile', // 根据需求设置 scope );
-
启动认证流程:
try { final result = await uaePass.authenticate(); print('Authentication successful: $result'); } catch (e) { print('Authentication failed: $e'); }
authenticate()
方法会启动 UAEPASS 的认证流程,并在认证成功后返回一个包含用户信息的result
对象。 -
处理认证结果:
你可以根据
result
对象中的信息来处理用户的登录状态,例如保存用户的 token 或跳转到主页面。
示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 ft_uaepass
插件进行 UAEPASS 认证:
import 'package:flutter/material.dart';
import 'package:ft_uaepass/ft_uaepass.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('UAEPASS Authentication'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
final uaePass = FtUaePass(
clientId: 'your_client_id',
redirectUri: 'your_redirect_uri',
scope: 'openid profile',
);
try {
final result = await uaePass.authenticate();
print('Authentication successful: $result');
} catch (e) {
print('Authentication failed: $e');
}
},
child: Text('Login with UAEPASS'),
),
),
),
);
}
}