Flutter身份验证插件flutter_authgear的使用

Flutter身份验证插件flutter_authgear的使用

Authgear banner

Authgear SDK for Flutter #

通过Authgear SDK for Flutter,您可以轻松地将身份验证功能集成到您的Flutter应用中。通常情况下,只需要几行代码就可以启用多种身份验证方法,例如社交登录、无密码登录、生物识别登录、短信/WhatsApp验证码以及多因素认证(MFA)。

快速链接 - 📚 文档 🏁 开始使用 🛠️ 疑难解答 👥 贡献

什么是Authgear? #

Authgear 是一个高度可适应的身份即服务(IDaaS)平台,适用于Web和移动应用程序。Authgear通过将其集成到各种类型的应用程序中(从单页Web应用到移动应用再到API服务)来简化用户身份验证的实现。

关键特性 #

  • 使用OpenID Connect(OIDC)标准的零信任身份验证架构。
  • 包含电子邮件、电话、用户名作为登录ID,以及密码、一次性密码(OTP)、魔法链接等的易于使用的注册和登录界面。
  • 支持广泛的身份提供商,如Google、Apple和Azure Active Directory(AD)。
  • 支持移动设备上的生物识别登录、Passkeys和多因素认证(MFA),如基于短信/邮件的验证和TOTP认证器应用。

文档 #

查看其他Authgear文档: https://docs.authgear.com/

开始使用 #

请遵循以下简单步骤开始使用:

疑难解答 #

请查看我们的求助以获取常见安装问题和其他问题的解决方案。

提出问题 #

若要提供反馈或报告错误,请在问题跟踪器上提出问题。

贡献 #

任何希望为本项目做出贡献的人都非常欢迎,无论是文档、功能、错误修复、代码清理、测试还是代码审查。只需在Authgear Discord服务器(#trouble)或GitHub Authgear的讨论板上举手加入。

如果您不熟悉如何为GitHub项目做贡献,可以查阅入门指南。一套完整的贡献指南及相关模板正在筹备中。

支持和维护 #

Authgear是一个高度可适应的身份即服务(IDaaS)平台,适用于Web和移动应用程序。了解更多请访问[网站](https://www.authgear.com/)


完整示例代码

import 'package:flutter/material.dart';
import 'package:flutter_authgear/flutter_authgear.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Authgear Flutter Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async {
                  // 初始化Authgear SDK
                  await Authgear.init(
                    authgearUrl: 'https://<your-authgear-instance>.authgearapp.com',
                    clientId: '<your-client-id>',
                    clientSecret: '<your-client-secret>',
                  );

                  // 登录
                  try {
                    var result = await Authgear.signIn();
                    print('User signed in: $result');
                  } catch (e) {
                    print('Login failed: $e');
                  }
                },
                child: Text('Sign In'),
              ),
              ElevatedButton(
                onPressed: () async {
                  // 注销
                  try {
                    await Authgear.signOut();
                    print('User signed out');
                  } catch (e) {
                    print('Sign out failed: $e');
                  }
                },
                child: Text('Sign Out'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

说明

  1. 初始化Authgear SDK:

    await Authgear.init(
      authgearUrl: 'https://<your-authgear-instance>.authgearapp.com',
      clientId: '<your-client-id>',
      clientSecret: '<your-client-secret>',
    );
    

    这一步需要替换authgearUrlclientIdclientSecret为您的实际值。

  2. 登录:

    var result = await Authgear.signIn();
    print('User signed in: $result');
    

    这会触发用户登录流程。登录成功后,您可以处理返回的结果。

  3. 注销:

    await Authgear.signOut();
    print('User signed out');
    

更多关于Flutter身份验证插件flutter_authgear的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter身份验证插件flutter_authgear的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个使用Flutter身份验证插件flutter_authgear的示例代码案例。这个示例将展示如何集成flutter_authgear进行用户注册和登录。

首先,确保你已经在pubspec.yaml文件中添加了flutter_authgear依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_authgear: ^最新版本号

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

接下来,在你的Flutter应用中,你需要初始化AuthGear客户端,并进行用户注册和登录。以下是一个基本的示例:

import 'package:flutter/material.dart';
import 'package:flutter_authgear/flutter_authgear.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter AuthGear Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: AuthScreen(),
    );
  }
}

class AuthScreen extends StatefulWidget {
  @override
  _AuthScreenState createState() => _AuthScreenState();
}

class _AuthScreenState extends State<AuthScreen> {
  final AuthGear _authGear = AuthGear(
    endpoint: 'https://your-authgear-endpoint.com', // 替换为你的AuthGear端点
    clientId: 'your-client-id', // 替换为你的客户端ID
  );

  Future<void> _registerUser() async {
    try {
      var user = await _authGear.register(
        username: 'testuser',
        password: 'password123',
      );
      print('User registered: ${user.id}');
    } catch (e) {
      print('Error registering user: $e');
    }
  }

  Future<void> _loginUser() async {
    try {
      var session = await _authGear.login(
        username: 'testuser',
        password: 'password123',
      );
      print('User logged in: ${session.accessToken}');
    } catch (e) {
      print('Error logging in user: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AuthGear Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _registerUser,
              child: Text('Register'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _loginUser,
              child: Text('Login'),
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. 依赖导入:确保在pubspec.yaml中添加了flutter_authgear依赖。
  2. AuthGear初始化:在AuthScreen类中初始化AuthGear实例,提供AuthGear的端点和客户端ID。
  3. 注册用户_registerUser方法使用AuthGear实例的register方法进行用户注册。这里我们使用了用户名和密码作为示例。
  4. 登录用户_loginUser方法使用AuthGear实例的login方法进行用户登录。同样,这里我们使用了用户名和密码。
  5. UI界面:在AuthScreenbuild方法中,我们创建了两个按钮,分别用于触发注册和登录操作。

请注意,你需要将https://your-authgear-endpoint.comyour-client-id替换为你实际的AuthGear端点和客户端ID。此外,这个示例仅展示了基本的注册和登录功能,实际应用中可能需要处理更多的错误情况和用户交互。

希望这个示例能帮助你快速上手flutter_authgear的使用!

回到顶部