fix: logout

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-01-25 17:07:41 +08:00
parent a115b5e91b
commit 74e8b66546
7 changed files with 144 additions and 129 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:PiliPlus/build_config.dart';
import 'package:PiliPlus/http/constants.dart';
import 'package:PiliPlus/services/loggeer.dart';
import 'package:PiliPlus/utils/login.dart';
import 'package:cookie_jar/cookie_jar.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -313,7 +314,7 @@ Commit Hash: ${BuildConfig.commitHash}''',
Get.back();
try {
dynamic res = jsonDecode(data.text!);
Utils.afterLoginByApp(
LoginUtils.onLogin(
res['accessKey'],
{'cookies': res['cookies']},
);

View File

@@ -1,4 +1,4 @@
library dynamics.tab;
export './controller.dart';
export './view.dart';
export './view.dart';

View File

@@ -5,8 +5,8 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/icon_button.dart';
import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/login.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
@@ -84,7 +84,7 @@ class LoginPageController extends GetxController
if (value['status']) {
t.cancel();
statusQRCode.value = '扫码成功';
await Utils.afterLoginByApp(
await LoginUtils.onLogin(
value['data'], value['data']['cookie_info']);
Get.back();
} else if (value['code'] == 86038) {
@@ -221,7 +221,7 @@ class LoginPageController extends GetxController
);
if (result.data['code'] == 0) {
try {
await Utils.afterLoginByApp(
await LoginUtils.onLogin(
{'mid': '${result.data['data']['mid']}'},
{
'cookies':
@@ -435,7 +435,7 @@ class LoginPageController extends GetxController
return;
}
SmartDialog.showToast('正在保存身份信息');
await Utils.afterLoginByApp(
await LoginUtils.onLogin(
data['token_info'], data['cookie_info']);
Get.back();
Get.back();
@@ -454,7 +454,7 @@ class LoginPageController extends GetxController
return;
}
SmartDialog.showToast('正在保存身份信息');
await Utils.afterLoginByApp(data['token_info'], data['cookie_info']);
await LoginUtils.onLogin(data['token_info'], data['cookie_info']);
Get.back();
} else {
// handle login result
@@ -517,7 +517,7 @@ class LoginPageController extends GetxController
if (res['status']) {
SmartDialog.showToast('登录成功');
var data = res['data'];
await Utils.afterLoginByApp(data['token_info'], data['cookie_info']);
await LoginUtils.onLogin(data['token_info'], data['cookie_info']);
Get.back();
} else {
SmartDialog.showToast(res['msg']);

View File

@@ -1,5 +1,4 @@
import 'package:PiliPlus/pages/about/index.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/pages/setting/extra_setting.dart';
import 'package:PiliPlus/pages/setting/play_setting.dart';
import 'package:PiliPlus/pages/setting/privacy_setting.dart';
@@ -9,8 +8,9 @@ import 'package:PiliPlus/pages/setting/video_setting.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/login.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import '../../http/init.dart';
@@ -205,22 +205,26 @@ class _SettingPageState extends State<SettingPage> {
),
TextButton(
onPressed: () async {
// 清空cookie
await Request.cookieManager.cookieJar.deleteAll();
await CookieManager().deleteAllCookies();
Request.dio.options.headers['cookie'] = '';
// 清空本地存储的用户标识
GStorage.userInfo.put('userInfoCache', null);
GStorage.localCache.put(LocalCacheKey.accessKey,
{'mid': -1, 'value': '', 'refresh': ''});
_isLogin.value = false;
if (Get.isRegistered<MainController>()) {
MainController mainController =
Get.find<MainController>();
mainController.isLogin.value = false;
SmartDialog.showLoading();
dynamic res = await Request().post(
'https://passport.bilibili.com/login/exit/v2',
data: {
'biliCSRF': await Request.getCsrf(),
},
options: Options(
contentType:
Headers.formUrlEncodedContentType,
),
);
if (res.data['code'] == 0) {
await LoginUtils.onLogout();
_isLogin.value = false;
SmartDialog.dismiss();
Get.back();
} else {
SmartDialog.dismiss();
SmartDialog.showToast('${res.data['message']}');
}
await LoginUtils.onLogout();
Get.back();
},
child: const Text('确认'),
)

View File

@@ -1,3 +1,3 @@
library video_reply_new;
export './view.dart';
export './view.dart';