Phase 4.5: Completed responsive player layout and real username integration
This commit is contained in:
@@ -3,35 +3,42 @@ import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class AuthProvider with ChangeNotifier {
|
||||
String? _token;
|
||||
String? _username; // 新增用户名状态
|
||||
bool _isAuthenticated = false;
|
||||
|
||||
bool get isAuthenticated => _isAuthenticated;
|
||||
String? get token => _token;
|
||||
String? get username => _username;
|
||||
|
||||
AuthProvider() {
|
||||
_loadToken();
|
||||
_loadAuth();
|
||||
}
|
||||
|
||||
void _loadToken() async {
|
||||
void _loadAuth() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
_token = prefs.getString('token');
|
||||
_username = prefs.getString('username');
|
||||
_isAuthenticated = _token != null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> login(String token) async {
|
||||
Future<void> login(String token, String username) async {
|
||||
_token = token;
|
||||
_username = username;
|
||||
_isAuthenticated = true;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString('token', token);
|
||||
await prefs.setString('username', username);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> logout() async {
|
||||
_token = null;
|
||||
_username = null;
|
||||
_isAuthenticated = false;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.remove('token');
|
||||
await prefs.remove('username');
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user