48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# 467 LoginForm
|
|
|
|
登录表单。
|
|
|
|
## 用途
|
|
|
|
账号、密码与“记住我”;提交中禁用输入;显示调用方给出的错误(含频率限制、锁定)。密码在私有临时状态中编辑,经提交回调传出,完成后清除;账号校验由调用方完成。
|
|
|
|
## 最小示例
|
|
|
|
```go
|
|
var state mujica.LoginFormState
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
mujica.LoginForm(c, &state, mujica.LoginFormOptions{OnSubmit: func(account, password string, remember bool) {
|
|
// Submit credentials through the caller-provided auth service.
|
|
state.EndSubmit("")
|
|
}})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
```
|
|
|
|
## 参数
|
|
|
|
| 字段 | 类型 | 默认值 | 含义 |
|
|
| --- | --- | --- | --- |
|
|
| `s` | `*LoginFormState` | 必填 | Account、Remember 可读写;密码不可读取。 |
|
|
| `OnSubmit` | `func(account, password string, remember bool)` | 必填 | 唯一接收凭据的出口。 |
|
|
| `AccountLabel` | `string` | 内置“Email or username” | 账号标签。 |
|
|
| `Disabled` | `bool` | false | 禁用。 |
|
|
|
|
## 状态
|
|
|
|
默认、必填错误、提交中、失败(错误文字)、禁用。
|
|
|
|
## 事件
|
|
|
|
`OnSubmit` 每次提交调用一次;完成后调用 `s.EndSubmit(err)`,密码随即清除。
|
|
|
|
## 键盘操作
|
|
|
|
Tab 顺序:账号、密码、显示密码、记住我、登录;任一字段中 Enter 提交;缺项时聚焦第一个空字段。
|
|
|
|
## 限制
|
|
|
|
- 凭据只经调用方回调传出;密码、验证码与密钥不会写入日志、Label 或 Description。
|
|
- 提交失败后需重新输入密码。
|