111
This commit is contained in:
@@ -5,6 +5,8 @@ import '../core/network/dio_client.dart';
|
||||
import '../core/storage/local_storage.dart';
|
||||
import '../data/models/user.dart';
|
||||
import '../data/services/user_service.dart';
|
||||
import '../main.dart';
|
||||
import '../ui/pages/auth/login_page.dart';
|
||||
|
||||
/// 認證狀態管理
|
||||
class AuthProvider extends ChangeNotifier {
|
||||
@@ -112,16 +114,13 @@ class AuthProvider extends ChangeNotifier {
|
||||
|
||||
/// 退出登錄
|
||||
Future<void> logout() async {
|
||||
_setLoading(true);
|
||||
|
||||
try {
|
||||
await _userService.logout();
|
||||
} catch (_) {
|
||||
// 忽略退出登錄的接口錯誤
|
||||
}
|
||||
} catch (_) {}
|
||||
|
||||
_clearAuthState();
|
||||
_setLoading(false);
|
||||
notifyListeners();
|
||||
_navigateToLogin();
|
||||
}
|
||||
|
||||
void _clearAuthState() {
|
||||
@@ -135,6 +134,18 @@ class AuthProvider extends ChangeNotifier {
|
||||
void forceLogout() {
|
||||
_clearAuthState();
|
||||
notifyListeners();
|
||||
_navigateToLogin();
|
||||
}
|
||||
|
||||
/// 使用全局導航 Key 跳轉到登錄頁並清空路由棧
|
||||
void _navigateToLogin() {
|
||||
final nav = navigatorKey.currentState;
|
||||
if (nav != null) {
|
||||
nav.pushAndRemoveUntil(
|
||||
MaterialPageRoute(builder: (_) => LoginPage()),
|
||||
(route) => false,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// 刷新用戶信息
|
||||
|
||||
Reference in New Issue
Block a user