diff --git a/lib/pages/login/controller.dart b/lib/pages/login/controller.dart index a9fdc51a3..0f5106db1 100644 --- a/lib/pages/login/controller.dart +++ b/lib/pages/login/controller.dart @@ -1,4 +1,5 @@ import 'dart:async' show Timer; +import 'dart:io' show Cookie; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; import 'package:PiliPlus/common/widgets/radio_widget.dart'; @@ -131,6 +132,20 @@ class LoginPageController extends GetxController }); } + static String validateCookie(String cookie) { + return cookie + .split(';') + .where((e) { + try { + Cookie.fromSetCookieValue(e.trim()); + } catch (_) { + return false; + } + return true; + }) + .join(';'); + } + // cookie登录 Future loginByCookie() async { if (cookieTextController.text.isEmpty) { @@ -142,7 +157,7 @@ class LoginPageController extends GetxController "/x/member/web/account", options: Options( headers: { - "cookie": cookieTextController.text, + "cookie": validateCookie(cookieTextController.text), }, extra: {'account': AnonymousAccount()}, ),