feat(auth): transition from email to phone-based OTP authentication

- Replace Email+Password login with Phone+OTP flow
- Remove RegisterCubit and registration screens (email verification)
- Remove ResetPasswordCubit and reset password screens
- Add phone normalization and international dial code support
- Update LoginCubit with sendCode/resend cooldown logic
- Add new widgets: phone prefix selector, confirm sheet
- Update all auth API endpoints: /otp/send, /phone-session
- Update form inputs: Email -> Phone with E.164 validation
- Update tests for new auth flow
This commit is contained in:
qzl
2026-03-19 18:42:05 +08:00
parent 636b37ee5a
commit 0661016827
29 changed files with 615 additions and 2030 deletions
@@ -1,14 +1,14 @@
class UserResponse {
final String id;
final String username;
final String? email;
final String? phone;
final String? avatarUrl;
final String? bio;
const UserResponse({
required this.id,
required this.username,
this.email,
this.phone,
this.avatarUrl,
this.bio,
});
@@ -17,7 +17,7 @@ class UserResponse {
return UserResponse(
id: json['id'] as String,
username: json['username'] as String,
email: json['email'] as String?,
phone: json['phone'] as String?,
avatarUrl: json['avatar_url'] as String?,
bio: json['bio'] as String?,
);