auth_module

Creator: coderz1093

Last updated:

0 purchases

auth_module Image
auth_module Images

Languages

Categories

Add to Cart

Description:

auth module

Auth Module README #
Overview #
The auth_module is a Flutter package designed to handle authentication-related functionalities
seamlessly. This package includes features for requesting OTPs, verifying OTPs, managing
authentication tokens, and providing authentication guards.
Features #

Request OTP
Verify OTP
Manage authentication tokens
Authentication guards

Installation #
To use this package, add the following dependency to your pubspec.yaml file:
dependencies:
auth_module:
path: ../ # Adjust the path as necessary
copied to clipboard
Run flutter pub get to install the package.
Usage #
Initializing AuthBloc #
First, initialize the AuthBloc in your Flutter application. Here is an example of setting
up AuthBloc using MultiBlocProvider:
import 'package:auth_module/auth_module.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider<AuthBloc>(
create: (context) => AuthBloc(authService: MyAuthService()),
),
],
child: MaterialApp(
home: HomeScreen(),
),
);
}
}

class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Home')),
body: Center(child: Text('Home Screen')),
);
}
}
copied to clipboard
Request OTP #
To request an OTP, dispatch the RequestOtpEvent to the AuthBloc. Here is an example with
a TextField for inputting the phone number:
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:auth_module/auth_module.dart';

class RequestOtpScreen extends StatelessWidget {
final TextEditingController _phoneController = TextEditingController();

@override
Widget build(BuildContext context) {
final authBloc = BlocProvider.of<AuthBloc>(context);

return Scaffold(
appBar: AppBar(title: Text('Request OTP')),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
controller: _phoneController,
decoration: InputDecoration(labelText: 'Phone Number'),
),
ElevatedButton(
onPressed: () {
authBloc.add(RequestOtpEvent(phoneNumber: _phoneController.text));
},
child: Text('Request OTP'),
),
],
),
),
);
}
}
copied to clipboard
Verify OTP #
To verify an OTP, dispatch the VerifyOtpEvent to the AuthBloc. Here is an example
with TextFields for inputting the phone number and OTP:
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:auth_module/auth_module.dart';

class VerifyOtpScreen extends StatelessWidget {
final TextEditingController _phoneController = TextEditingController();
final TextEditingController _otpController = TextEditingController();

@override
Widget build(BuildContext context) {
final authBloc = BlocProvider.of<AuthBloc>(context);

return Scaffold(
appBar: AppBar(title: Text('Verify OTP')),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
controller: _phoneController,
decoration: InputDecoration(labelText: 'Phone Number'),
),
TextField(
controller: _otpController,
decoration: InputDecoration(labelText: 'OTP'),
),
ElevatedButton(
onPressed: () {
authBloc.add(
VerifyOtpEvent(phoneNumber: _phoneController.text, otp: _otpController.text));
},
child: Text('Verify OTP'),
),
],
),
),
);
}
}
copied to clipboard
Implementing the Abstract AuthService Class #
To implement the abstract AuthService class, extend it and provide concrete implementations for
its methods:
import 'package:auth_module/auth_module.dart';

class MyAuthService extends AuthService {
@override
Future<AuthResponse> requestOtp(String phoneNumber) async {
// Implement your OTP request logic here
return AuthResponse(isSuccessful: true, message: 'OTP requested successfully');
}

@override
Future<AuthResponse> verifyOtp(String phoneNumber, String otp) async {
// Implement your OTP verification logic here
return AuthResponse(isSuccessful: true, message: 'OTP verified successfully');
}

@override
Future<AuthResponse> login(String username, String password) async {
// Implement your login logic here
return AuthResponse(isSuccessful: true, message: 'Logged in successfully');
}

@override
Future<void> logout() async {
// Implement your logout logic here
}
}
copied to clipboard
Example Implementation #
Refer to the example implementation in the ./example/ directory for a comprehensive demonstration
of how to use the auth_module package.
License #
This project is licensed under the MIT License - see the LICENSE file for details.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.