initial import
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import '../models/user_info.dart';
|
||||
import '../services/api_service.dart';
|
||||
import '../services/auth_service.dart';
|
||||
|
||||
class AuthProvider extends ChangeNotifier {
|
||||
final AuthService _authService = AuthService();
|
||||
final ApiService _apiService;
|
||||
|
||||
bool isAuthenticated = false;
|
||||
UserInfo? userInfo;
|
||||
|
||||
AuthProvider(this._apiService);
|
||||
|
||||
Future<void> init() async {
|
||||
final token = await _authService.getStoredToken();
|
||||
if (token != null) {
|
||||
_apiService.setBearerToken(token);
|
||||
try {
|
||||
userInfo = await _apiService.getUserInfo();
|
||||
isAuthenticated = true;
|
||||
} catch (e) {
|
||||
// Token expired, clear it
|
||||
await _authService.logout();
|
||||
_apiService.clearBearerToken();
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> login() async {
|
||||
final token = await _authService.login();
|
||||
if (token != null) {
|
||||
_apiService.setBearerToken(token);
|
||||
try {
|
||||
userInfo = await _apiService.getUserInfo();
|
||||
isAuthenticated = true;
|
||||
} catch (e) {
|
||||
isAuthenticated = false;
|
||||
}
|
||||
} else {
|
||||
isAuthenticated = false;
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> logout() async {
|
||||
await _authService.logout();
|
||||
_apiService.clearBearerToken();
|
||||
isAuthenticated = false;
|
||||
userInfo = null;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user