35 lines
2.6 KiB
Markdown
35 lines
2.6 KiB
Markdown
# Log in
|
||
|
||
Route: `/login`. API: GET /v1/auth/registration (pending) · POST /v1/auth/login.
|
||
|
||
After logging in, you go back to the page you originally asked for (?redirect=), or to /home. An unverified account goes to /register/pending. "Create the owner account" appears only when registration is open.
|
||
|
||
Visual reference: `RenewCMS Screens Auth.dc.html`, groups "Log in". Frames: `AppFrame.dc.html` (shell, sidebar, topbar, drawer) plus the screen frame where listed in components.md.
|
||
|
||
## Copy per state (generated from the board source, pass 2)
|
||
|
||
Every state below is drawn in light and dark (theme switch on the board), at 1440×900 and 390×844 (both frames sit side by side). Board: `RenewCMS Screens Auth.dc.html`. Copy is exact; where a cell is empty the state reuses the fixed copy.
|
||
|
||
### Base copy
|
||
- Log in
|
||
- Welcome back. Log in to manage your articles.
|
||
- Log in
|
||
|
||
### Log in (group "Log in", 9 states)
|
||
|
||
Route: `/login`. API: GET /v1/auth/registration (pending) · POST /v1/auth/login.
|
||
|
||
After logging in, you go back to the page you originally asked for (?redirect=), or to /home. An unverified account goes to /register/pending. "Create the owner account" appears only when registration is open.
|
||
|
||
| # | State | Trigger | Copy |
|
||
|---|---|---|---|
|
||
| 1 | Default | Registration is closed, which is the usual case. | |
|
||
| 2 | Fresh install | GET /v1/auth/registration returns { open: true }. | "First time here?" / "Create the owner account" |
|
||
| 3 | Validation errors | Submit with a short username and an empty password. Nothing is sent. | "Use at least 3 characters." / "Enter your password." |
|
||
| 4 | Submitting | The request is in flight. Fields and button are disabled. | "Logging in…" |
|
||
| 5 | Wrong credentials (403) | The API doesn't say which field is wrong, so neither does the message. The password is cleared and gets focus. | "That username and password don't match" / "Check both and try again. Passwords are case-sensitive." |
|
||
| 6 | Too many attempts (429) | Retry-After is counted down. The button re-enables at zero. | "Too many attempts" / "For your security, wait a moment before trying again." / "Try again in 0:42" |
|
||
| 7 | Session expired | Redirected from a 401 with ?redirect=/article/12/edit&reason=expired. Unsaved edits are kept in the browser. | "Your session expired" / "Log in again to pick up where you left off. Unsaved changes are kept on this device." |
|
||
| 8 | Password changed | Arrived from a successful reset with ?reason=password-changed. | "Log in with your new password." |
|
||
| 9 | Server or network error | A 500 or no response. The fields keep their values. | "Couldn't reach RenewCMS" / "Check your connection and try again." |
|