Flutter身份验证插件app_essentials_auth的使用

Flutter App Essentials Auth #

Flutter App Essentials Auth 是一个全面的包,旨在通过提供基本的身份验证功能和实用工具来加速应用程序开发。它包括用户身份验证管理、API 集成、异常处理等。借助 Flutter App Essentials,开发者可以快速启动项目,并专注于构建出色的用户体验。

特性 #

  • 身份验证仓库:用于管理用户身份验证的仓库,包括登录、注册、密码重置和用户资料管理。
  • 用户管理器:用于管理和交互用户相关数据的工具,例如用户偏好设置、资料更新和访问控制。
  • 令牌管理器:用于安全地管理用户身份验证令牌并刷新过期令牌的系统。
  • API 层:用于处理 API 请求和响应的抽象层,包括身份验证头和错误处理。
  • 简洁的 main.dart 文件:包含样板代码、应用程序初始化和路由设置的精简 main.dart 文件。
  • 身份验证逻辑:预实现的身份验证逻辑,用于处理登录、注册、会话管理和用户状态。
  • 异常处理器:集中式异常处理机制,用于统一捕获和处理错误。
  • SnackBar 处理器:用于显示 SnackBar 和 Toast 消息的工具,提供一致的用户反馈机制。

安装 #

要在您的 Flutter 项目中使用 App Essentials Auth,请在您的 pubspec.yaml 文件中添加以下依赖项:

dependencies:
  app_essentials_auth: ^1.0.0

开始使用 #

TODO: 列出前提条件,并提供或指向如何开始使用该包的信息。

使用 #


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

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

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

class LoginPage extends StatefulWidget { @override _LoginPageState createState() => _LoginPageState(); }

class _LoginPageState extends State<LoginPage> { final TextEditingController _emailController = TextEditingController(); final TextEditingController _passwordController = TextEditingController();

void _login() async { try { // 假设这里调用了一个登录方法 await AppEssentialsAuth.login(_emailController.text, _passwordController.text); // 登录成功后跳转到主页 Navigator.pushReplacementNamed(context, ‘/home’); } catch (e) { // 捕获异常并显示错误信息 ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(‘登录失败: $e’)), ); } }

@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(‘登录’), ), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ TextField( controller: _emailController, decoration: InputDecoration(labelText: ‘邮箱’), ), TextField( controller: _passwordController, obscureText: true, decoration: InputDecoration(labelText: ‘密码’), ), SizedBox(height: 20), ElevatedButton( onPressed: _login, child: Text(‘登录’), ), ], ), ), ); } }

贡献 #

欢迎贡献!如果您发现任何问题或有任何改进建议,请在 GitHub 存储库上创建一个新的问题或提交拉取请求。

许可证 #

该项目根据 MIT 许可证授权。


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

1 回复

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


当然,我可以为你提供一个使用 app_essentials_auth 插件进行身份验证的 Flutter 代码示例。app_essentials_auth 是一个流行的 Flutter 插件,用于简化身份验证流程,支持多种认证方式,如 Email/Password、Google Sign-In、Apple Sign-In 等。

首先,你需要在 pubspec.yaml 文件中添加 app_essentials_auth 依赖:

dependencies:
  flutter:
    sdk: flutter
  app_essentials_auth: ^最新版本号  # 替换为最新版本号

然后运行 flutter pub get 来获取依赖。

以下是一个简单的 Flutter 应用示例,展示了如何使用 app_essentials_auth 进行 Email/Password 方式的身份验证:

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

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

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

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

class _AuthScreenState extends State<AuthScreen> {
  final AuthService _authService = AuthService();
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _passwordController = TextEditingController();

  void _signUp() async {
    try {
      UserCredential userCredential = await _authService.createUserWithEmailAndPassword(
        email: _emailController.text,
        password: _passwordController.text,
      );
      print("Sign-Up successful: ${userCredential.user}");
    } catch (e) {
      print("Sign-Up failed: ${e.message}");
    }
  }

  void _signIn() async {
    try {
      UserCredential userCredential = await _authService.signInWithEmailAndPassword(
        email: _emailController.text,
        password: _passwordController.text,
      );
      print("Sign-In successful: ${userCredential.user}");
    } catch (e) {
      print("Sign-In failed: ${e.message}");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Auth Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _emailController,
              decoration: InputDecoration(labelText: 'Email'),
            ),
            TextField(
              controller: _passwordController,
              decoration: InputDecoration(labelText: 'Password'),
              obscureText: true,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _signUp,
              child: Text('Sign Up'),
            ),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: _signIn,
              child: Text('Sign In'),
            ),
          ],
        ),
      ),
    );
  }
}

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;

  Future<UserCredential> createUserWithEmailAndPassword(
      String email, String password) async {
    return await _auth.createUserWithEmailAndPassword(
      email: email,
      password: password,
    );
  }

  Future<UserCredential> signInWithEmailAndPassword(
      String email, String password) async {
    return await _auth.signInWithEmailAndPassword(
      email: email,
      password: password,
    );
  }
}

在这个示例中:

  1. 我们创建了一个 AuthService 类,用于封装 Firebase Authentication 的方法。
  2. AuthScreen 是一个简单的用户界面,包含 Email 和 Password 输入框以及 Sign Up 和 Sign In 按钮。
  3. _signUp_signIn 方法分别调用 AuthService 中的方法来处理用户注册和登录。

注意:

  • 你需要在 Firebase 控制台中配置你的项目,并启用 Email/Password 认证。
  • 你还需要在你的 android/app/build.gradleios/Runner/Info.plist 文件中添加相应的 Firebase 配置。

这个示例展示了如何使用 app_essentials_auth 插件(通过 Firebase Authentication)进行基本的 Email/Password 身份验证。如果你需要其他类型的身份验证(如 Google Sign-In、Apple Sign-In),app_essentials_auth 插件也提供了相应的支持,你可以查阅其文档来获取更多信息。

回到顶部