Email / SMS code login
Let users log in with an email or phone code — no passwords to remember.
The problem today
Your local project has no accounts; anyone can open it and data is not per-user.
What you get
- Full sign-up / login / logout flow
- Code sending & verification
- Users only see their own data after login
Copy the whole block below and paste it into Codex. Replace placeholders like API keys with real values from the IFQ Cloud console.
You are a senior full-stack engineer. In my currently open local project, add "email or SMS verification-code login" so users must log in before using core features.
[Features to build]
- Provide sign-up, login, and logout entries; UI in the app language and consistent with the existing style.
- Login flow: user enters email or phone, cloud sends a code, correct code logs them in.
- Persist login state after success; stays logged in across refresh/restart until logout.
- Protect core pages: redirect to login when not authenticated.
[Connect to IFQ Cloud — important]
- Integrate through IFQ Cloud. API base URL is https://api.cloud.ifq.ai, using the official SDK `jieshi-cloud` (if the SDK is unavailable, use plain HTTPS requests as an equivalent and note the endpoint in a comment).
- Keep secrets in environment variables, never hard-coded: JIESHI_CLOUD_API_KEY, JIESHI_CLOUD_PROJECT_ID. Generate a `.env.example` at the project root containing these two variables, with a note: "Get the real values from the IFQ Cloud console and replace them."
- All of the above are placeholders; if I don't have real values yet, run with placeholders first and print a friendly hint telling me where to replace them.
[Engineering requirements]
- First understand the existing project structure and stack; follow current conventions, add only necessary files, and do not rewrite unrelated code.
- Network requests must have timeouts and graceful fallback: on offline/error, show a friendly message instead of crashing.
- Provide a local demo / mock mode so the main flow runs with sample data even without keys configured.
- Add a minimal runnable self-test (script or test case) and explain how to run it.
- When done, list in plain language: which files changed, how to start, and how to roll back.
Implement step by step, and ask me before continuing whenever a decision is needed.