38 lines
928 B
Dart
38 lines
928 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class AuthProvider with ChangeNotifier {
|
|
String? _token;
|
|
bool _isAuthenticated = false;
|
|
|
|
bool get isAuthenticated => _isAuthenticated;
|
|
String? get token => _token;
|
|
|
|
AuthProvider() {
|
|
_loadToken();
|
|
}
|
|
|
|
void _loadToken() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
_token = prefs.getString('token');
|
|
_isAuthenticated = _token != null;
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> login(String token) async {
|
|
_token = token;
|
|
_isAuthenticated = true;
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString('token', token);
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> logout() async {
|
|
_token = null;
|
|
_isAuthenticated = false;
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.remove('token');
|
|
notifyListeners();
|
|
}
|
|
}
|