Files
2026-09-16 16:32:08 +08:00

2.1 KiB

ADDED Requirements

Requirement: Bind page SHALL prefill the account main phone

The system SHALL prefill the bind-phone input with the logged-in account's main phone when one exists, using GET /api/c/v1/asset/info -> bound_phone, and SHALL allow sending a bind_phone verification code to that number.

Scenario: Existing account with a main phone enters the bind page

  • WHEN the account already has a main phone and the user enters pages/bind/bind
  • THEN the phone input SHALL be prefilled with the main phone
  • AND the user SHALL be able to request a bind_phone verification code for that number without being rejected

Scenario: New account without a main phone enters the bind page

  • WHEN the account has no main phone
  • THEN the phone input SHALL remain empty
  • AND the user SHALL enter a new number and follow the normal bind flow

Requirement: Bind submission SHALL be idempotent for the account main phone

When POST /api/c/v1/auth/bind-phone is submitted with the account main phone and a valid code, the system SHALL treat it as a successful idempotent association instead of rejecting because the phone is already in use.

Scenario: Main phone plus valid code

  • WHEN the submitted phone equals the account main phone and the code is valid
  • THEN the bind request SHALL succeed
  • AND the response SHALL keep the existing shape (phone, bound_at)
  • AND the existing bind-completion routing SHALL apply unchanged

Scenario: Number different from the main phone

  • WHEN the submitted phone differs from the account main phone
  • THEN the bind request SHALL be rejected
  • AND the system SHALL display the backend msg and keep the user on the bind page

Requirement: Bind failures SHALL display backend messages

The system SHALL present the backend-provided error message for all bind-phone failures instead of a generic failure text, and SHALL keep the user on the bind page.

Scenario: Backend rejection with message

  • WHEN bind-phone returns a business error
  • THEN the bind page SHALL show the returned msg
  • AND the page SHALL NOT navigate away