From ebde4eeed5d4e9a2a6922d4317d570c441800cf8 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Tue, 27 May 2025 22:41:27 +0800 Subject: [PATCH] :sparkles: Reset password --- assets/i18n/en-US.json | 4 +++- lib/screens/auth/login.dart | 13 +++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/assets/i18n/en-US.json b/assets/i18n/en-US.json index 124a510..af7c3bc 100644 --- a/assets/i18n/en-US.json +++ b/assets/i18n/en-US.json @@ -281,5 +281,7 @@ "settingsEnterToSend": "Enter to Send", "postTitle": "Title", "postDescription": "Description", - "call": "Call" + "call": "Call", + "done": "Done", + "loginResetPasswordSent": "Password reset link sent, please check your email inbox." } diff --git a/lib/screens/auth/login.dart b/lib/screens/auth/login.dart index 34543a6..b23b767 100644 --- a/lib/screens/auth/login.dart +++ b/lib/screens/auth/login.dart @@ -19,6 +19,8 @@ import 'package:material_symbols_icons/symbols.dart'; import 'package:styled_widget/styled_widget.dart'; import 'package:url_launcher/url_launcher_string.dart'; +import 'captcha.dart'; + final Map kFactorTypes = { 0: ('authFactorPassword', 'authFactorPasswordDescription', Symbols.password), 1: ('authFactorEmail', 'authFactorEmailDescription', Symbols.email), @@ -354,15 +356,18 @@ class _LoginLookupScreen extends HookConsumerWidget { showErrorAlert('loginResetPasswordHint'.tr()); return; } + final captchaTk = await Navigator.of( + context, + ).push(MaterialPageRoute(builder: (context) => CaptchaScreen())); + if (captchaTk == null) return; isBusy.value = true; try { final client = ref.watch(apiClientProvider); - final lookupResp = await client.get('/users/lookup?probe=$uname'); await client.post( - '/users/me/password-reset', - data: {'user_id': lookupResp.data['id']}, + '/accounts/recovery/password', + data: {'account': uname, 'captcha_token': captchaTk}, ); - showInfoAlert('done'.tr(), 'signinResetPasswordSent'.tr()); + showInfoAlert('loginResetPasswordSent'.tr(), 'done'.tr()); } catch (err) { showErrorAlert(err); } finally {