Flutter阿里巴巴认证插件ali_auth_plugin的使用

Flutter阿里巴巴认证插件ali_auth_plugin的使用

简介

ali_auth_plugin 是一个用于实现阿里巴巴认证功能的 Flutter 插件。它支持 Android 和 iOS 平台,并提供了多种方法来集成阿里巴巴的认证服务。


使用步骤

1. 添加依赖

pubspec.yaml 文件中添加 ali_auth_plugin 作为依赖项:

dependencies:
  ali_auth_plugin: ^版本号

运行以下命令以安装依赖:

flutter pub get

2. 初始化插件

在项目中初始化插件并配置必要的参数。以下是完整的示例代码:

import 'package:flutter/material.dart';
import 'package:ali_auth_plugin/ali_auth_plugin_method_channel.dart';
import 'package:ali_auth_plugin/ali_auth_plugin_platform_interface.dart';
import 'package:ali_auth_plugin/ali_auth_ui_config.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';
  final _aliAuthPlugin = AliAuthPlugin();
  String? _sdkVersion = "";
  bool _checkEnvAvailable = false;
  String? loginToken = "";

  @override
  void initState() {
    super.initState();
    initPlatformState();
    _aliAuthPlugin.getSdkVersion().then((value) {
      print("初始化结果:$value");
      setState(() {
        _sdkVersion = value;
      });
    });
    _aliAuthPlugin.checkEnvAvailable().then((value) {
      print("检查登录结果:$value");
      setState(() {
        _checkEnvAvailable = value;
      });
    });
  }

  // 获取平台版本
  Future<void> initPlatformState() async {
    String platformVersion;
    try {
      platformVersion = await _aliAuthPlugin.getPlatformVersion() ?? 'Unknown platform version';
    } on Exception {
      platformVersion = 'Failed to get platform version.';
    }

    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('阿里认证插件示例'),
        ),
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
            // 显示平台版本
            Text('运行于平台: $_platformVersion\n'),

            // 检查 SDK 版本
            MaterialButton(
              onPressed: () {
                AliAuthPluginPlatform.instance.getSdkVersion().then((value) {
                  print("初始化结果:$value");
                  setState(() {
                    _sdkVersion = value;
                  });
                });
              },
              child: Text("SDK版本: $_sdkVersion"),
            ),

            // 设置 App Secret
            MaterialButton(
              onPressed: () {
                AliAuthPluginPlatform.instance
                    .setAuthSDKInfo("androidkey", "ioskey")
                    .then((value) {});
              },
              child: Text("设置 App Secret"),
            ),

            // 检查环境是否可用
            MaterialButton(
              onPressed: () {
                AliAuthPluginPlatform.instance
                    .checkEnvAvailable()
                    .then((value) {
                  print("检查环境:$value");
                  setState(() {
                    _checkEnvAvailable = value;
                  });
                });
              },
              child: Text("检查环境: $_checkEnvAvailable"),
            ),

            // 获取登录 Token
            MaterialButton(
              onPressed: () {
                print("获取登录 token 点击");
                AliAuthPluginPlatform.instance
                    .getLoginToken(
                        uiConfig: AuthUiConfig(
                  navColor: "#FFFFFFFF",
                  lightColor: true,
                  navTextColor: "#FF000000",
                  navReturnImgPath: "icon_return_333",
                  logoImgPath: "ic_launcher",
                  logBtnBackgroundPath: "ali_auth_log_btn_background",
                  logBtnTextColor: "#FFFFFFFF",
                  checkedImgPath: "icon_agreement_select",
                  uncheckedImgPath: "icon_agreement_normal",
                ))
                    .then((value) {
                  print("获取登录 token:$value");
                  setState(() {
                    loginToken = value;
                  });
                });
              },
              child: Text("获取登录 Token: $loginToken"),
            ),
          ],
        ),
      ),
    );
  }
}

3. 配置 UI 参数

AuthUiConfig 是用于配置认证界面的参数类。以下是一些常用字段的说明:

  • navColor: 导航栏背景颜色。
  • lightColor: 是否启用浅色模式。
  • navTextColor: 导航栏文字颜色。
  • navReturnImgPath: 返回按钮图标路径。
  • logoImgPath: 应用图标路径。
  • logBtnBackgroundPath: 登录按钮背景图片路径。
  • logBtnTextColor: 登录按钮文字颜色。
  • checkedImgPath: 已选中状态的图片路径。
  • uncheckedImgPath: 未选中状态的图片路径。

4. 发布到 Pub.dev

修改版本号并打 Tag 标签

  1. 修改 pubspec.yaml 中的版本号。
  2. 打标签:
    git tag -a v版本号 -m "版本说明"
    git push origin v版本号
    

发布到 Pub.dev

执行以下命令发布插件:

flutter packages pub publish --server=https://pub.dartlang.org

更多关于Flutter阿里巴巴认证插件ali_auth_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter阿里巴巴认证插件ali_auth_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ali_auth_plugin 是阿里巴巴提供的一个Flutter插件,用于集成阿里云的移动认证服务(Mobile Authentication)。该插件可以帮助开发者快速实现手机号码一键登录、本机号码校验等功能。

以下是如何在Flutter项目中使用 ali_auth_plugin 的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 ali_auth_plugin 依赖:

dependencies:
  flutter:
    sdk: flutter
  ali_auth_plugin: ^latest_version

然后运行 flutter pub get 以安装依赖。

2. 配置Android项目

android/app/build.gradle 文件中,确保 minSdkVersion 至少为 21:

android {
    defaultConfig {
        minSdkVersion 21
        // 其他配置
    }
}

3. 配置iOS项目

ios/Podfile 文件中,确保 platform :ios 至少为 9.0:

platform :ios, '9.0'

然后运行 pod install 以安装 iOS 依赖。

4. 初始化插件

main.dart 文件中初始化 ali_auth_plugin

import 'package:ali_auth_plugin/ali_auth_plugin.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('AliAuthPlugin Example'),
        ),
        body: Center(
          child: MyHomePage(),
        ),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final AliAuthPlugin _authPlugin = AliAuthPlugin();

  @override
  void initState() {
    super.initState();
    _initAuth();
  }

  Future<void> _initAuth() async {
    await _authPlugin.init(
      appKey: 'your_app_key', // 替换为你的AppKey
      appSecret: 'your_app_secret', // 替换为你的AppSecret
    );
  }

  Future<void> _login() async {
    try {
      final response = await _authPlugin.login();
      print('Login success: $response');
    } catch (e) {
      print('Login failed: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: _login,
        child: Text('一键登录'),
      ),
    );
  }
}

5. 获取AppKey和AppSecret

你需要在阿里云移动认证服务控制台中注册应用,并获取 AppKeyAppSecret

6. 运行项目

完成上述配置后,运行你的Flutter项目:

flutter run
回到顶部