This commit is contained in:
Patrick Alvin Alcala 2025-01-22 13:14:06 +08:00
parent f1db550ee7
commit b2aeb642cc
11 changed files with 209 additions and 60 deletions

31
lib/auth/auth_gate.dart Normal file
View file

@ -0,0 +1,31 @@
import 'package:flutter/material.dart';
import 'package:pharmacy_mobile/pages/index_page.dart';
import 'package:pharmacy_mobile/pages/login_page.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
class AuthGate extends StatelessWidget {
const AuthGate({super.key});
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Supabase.instance.client.auth.onAuthStateChange,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
}
final session = snapshot.hasData ? snapshot.data!.session : null;
if (session != null) {
return IndexPage();
} else {
return LoginPage();
}
});
}
}

View file

@ -0,0 +1,23 @@
import 'package:supabase_flutter/supabase_flutter.dart';
class AuthService {
final SupabaseClient _supabase = Supabase.instance.client;
Future<AuthResponse> signIn(String email, String password) async {
return await _supabase.auth.signInWithPassword(email: email, password: password);
}
Future<AuthResponse> signUp(String email, String password) async {
return await _supabase.auth.signUp(email: email, password: password);
}
Future<void> signOut() async {
await _supabase.auth.signOut();
}
String? getCurrentUser() {
final session = _supabase.auth.currentSession;
final user = session?.user;
return user?.email;
}
}