修复 修改名称 无token不退出登录的逻辑
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:maibu_satabot_v2/core/router/route_paths.dart';
|
||||
import 'package:maibu_satabot_v2/features/devices/presentation/bloc/devices_cubit.dart';
|
||||
import 'package:maibu_satabot_v2/features/my/presentation/bloc/my_cubit.dart';
|
||||
import 'package:maibu_satabot_v2/features/my/presentation/bloc/my_state.dart';
|
||||
@@ -67,6 +69,9 @@ class _UserInfoCardState extends State<UserInfoCard> {
|
||||
child: BlocBuilder<MyCubit, MyState>(
|
||||
builder: (context, myState) {
|
||||
final cubit = context.read<MyCubit>();
|
||||
if (myState.errorMessage == '登录状态失效,请重新登录') {
|
||||
context.go(RoutePaths.login);
|
||||
}
|
||||
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(left: 16, right: 16, top: 20, bottom: MediaQuery.of(context).viewInsets.bottom + 80),
|
||||
@@ -150,7 +155,7 @@ class _UserInfoCardState extends State<UserInfoCard> {
|
||||
// 提交新昵称的业务逻辑
|
||||
Future<void> _submitNewNickname(BuildContext context) async {
|
||||
final newNickname = _nicknameController.text.trim();
|
||||
if (newNickname.isEmpty ) {
|
||||
if (newNickname.isEmpty) {
|
||||
Navigator.pop(context);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import 'dart:math';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:maibu_satabot_v2/core/router/route_paths.dart';
|
||||
import 'package:maibu_satabot_v2/features/auth/presentation/bloc/auth_cubit.dart';
|
||||
import 'package:maibu_satabot_v2/features/my/repository/my_repository.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
@@ -27,8 +30,14 @@ class MyRepositoryImpl implements MyRepository {
|
||||
|
||||
// 补充:从 UserStorage 获取 token(接口通常需要认证)
|
||||
final token = await _getToken();
|
||||
if(token!.isEmpty){
|
||||
|
||||
// 1. Token 为空/无效:返回专属错误
|
||||
if (token == null || token.isEmpty) {
|
||||
// 异步执行登出(不阻塞当前方法返回)
|
||||
Future.microtask(() async {
|
||||
await GetIt.I<UserStorage>().deleteUser();
|
||||
GetIt.I<AuthCubit>().logout();
|
||||
});
|
||||
return Left(DeviceFailure.serverError(message: '登录状态失效,请重新登录'));
|
||||
}
|
||||
final headers = {
|
||||
'Content-Type': 'application/json',
|
||||
|
||||
Reference in New Issue
Block a user