Skip to content

登录/注册/忘记密码表单提交前应去除邮箱、手机号的前后空格 #3238

Description

@baozhoutao

问题描述

登录页(以及注册、忘记密码页)中,用户输入的邮箱/手机号如果带有前后空格(常见于移动端自动补全、复制粘贴),提交时会原样发给服务端,导致登录报 Invalid email 等错误,用户很难察觉是空格问题。

具体未 trim 的提交路径(packages/auth):

  • LoginForm.tsx — 密码模式 signIn(email, password)、手机号判定 looksLikePhoneIdentifier(email)、SSO 路径 POST /sign-in/sso{ email };
  • RegisterForm.tsxsignUp(name, email, password) 的 email;
  • ForgotPasswordForm.tsx — 邮箱分支 forgotPassword(email)

(手机 OTP 相关路径已有 phone.trim(),不受影响。)

方案描述

在各表单提交处统一对邮箱/手机号标识符做 trim() 后再消费(校验、路由判定、发请求),输入框内保持用户原始输入不变:

  • LoginForm.handleSubmit:取 identifier = email.trim(),后续 looksLikePhoneIdentifier / signInWithPhonePassword / signIn 均用 trim 后的值;handleSso 同样用 trim 后的 email;
  • RegisterForm.handleSubmit:signUpemail.trim()(onVerificationRequired 回调同样传 trim 后的值);
  • ForgotPasswordForm.handleSubmit:forgotPassword(email.trim())

补充单元测试:带前后空格的邮箱可正常登录/注册/发送重置邮件,且发出的值已去除空格。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions