import 'package:flutter/foundation.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; class AuthService extends ChangeNotifier { final _storage = const FlutterSecureStorage(); bool _isAuthenticated = false; Map _credentials = {}; bool get isAuthenticated => _isAuthenticated; Map get credentials => _credentials; Future saveConfigs(String key, String value) async { await _storage.write(key: key, value: value); _credentials[key] = value; _isAuthenticated = true; notifyListeners(); } Future loadConfigs() async { final leetcodeCookie = await _storage.read(key: 'leetcode_cookie'); final leetcodeUserSlug = await _storage.read(key: 'leetcode_user_slug'); final giteaToken = await _storage.read(key: 'gitea_token'); final giteaUserName = await _storage.read(key: 'gitea_username'); final kodboxToken = await _storage.read(key: 'kodbox_token'); final githubUserName = await _storage.read(key: 'github_username'); final githubToken = await _storage.read(key: 'github_token'); if (leetcodeCookie != null) { _credentials['leetcode_cookie'] = leetcodeCookie; } if (leetcodeUserSlug != null) { _credentials['leetcode_user_slug'] = leetcodeUserSlug; } if (giteaToken != null) { _credentials['gitea_token'] = giteaToken; } if (giteaUserName != null) { _credentials['gitea_username'] = giteaUserName; } if (kodboxToken != null) { _credentials['kodbox_token'] = kodboxToken; } if (githubUserName != null) { _credentials['github_username'] = githubUserName; } if (githubToken != null) { _credentials['github_token'] = githubToken; } _isAuthenticated = true; notifyListeners(); } Future logout() async { await _storage.deleteAll(); _credentials.clear(); _isAuthenticated = false; notifyListeners(); } }