---
order: 2
navTitle: 登录
---
# 登录

用于用户使用账号密码或者手机验证码登录系统。

供系统内部扩展登录界面以及二次开发使用。

## 调用说明

请求方式：`POST`\
请求url：`/api/auth/signin`\
请求参数示例：

```json
{
    "cipherPassport": "werc6t7vy898786756setryui=",
    "remember": false,
    "captcha": "tyuied",
    "userDirectory": "sys"
}
```

参数说明：

| 参数           | 必须 | 说明                                                                                                                                                                     |
| :------------- | :--- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| cipherPassport | 是   | `{user:"xx",password:"xxx"}`或者`{phone:"13212345678",code:"234567"}`JSON字符串的Base64编码字符串，`user`为用户ID，`password`为密码，`phone`为手机号，`code`为短信验证码 |
| remember       | 否   | 是否需要记住登录状态                                                                                                                                                     |
| captcha        | 否   | 图片验证码，当使用密码登录时输入错误达到系统设置次数，界面上展示图片验证码的时候需要传递                                                                                |
| userDirectory  | 否   | 用户类型，`sys`代表系统用户，`external`代表外部用户，默认为`sys`                                                                                                         |

## 返回说明

示例：

```json
{
    "result": false,
    "errorCode": "userNotFound",
    "message": "该手机号没有绑定账号"
}
```

参数说明：

| 参数            | 说明                                                                                        |
| :-------------- | :------------------------------------------------------------------------------------------ |
| result          | 校验结果，`true`标识成功                                                                    |
| errorCode       | 错误编码                                                                                    |
| message         | 错误文本提示                                                                                |
| online          | 是否已经在其他地方登录过了                                                                  |
| loginTime       | 在其他地方登录的登录时间                                                                    |
| loginIPAddress  | 在其他地方登录的IP地址                                                                      |
| captchaShown    | 是否需要在登录界面显示验证码                                                                |
| passwordDefault | 是否检查到当前登录用户的密码为默认密码                                                      |
| passwordInvalid | 是否检查到当前登录用户的密码不符合[系统设置](../../../../sys-settings/README.md)要求 |
| passwordExpired | 是否检查到当前登录用户的密码为过期了需要重新设置密码                                        |
| locked          | 是否因为多次输入密码错误被锁定，一段时间内不然使用账号密码登录，                            |
| lockToTime      | 账号被锁定截止时间，为long类型                                                              |
| tryTimesRemain  | 账号被锁定前可再次尝试的次数                                                                |
| phone           | 手机号，为加密后的内容，比如 ： "131\*\*\*\*1234"                                               |

使用手机验证码登录时候的`errorCode`说明：

| errorCode             | 说明                                                                          |
| :-------------------- | :---------------------------------------------------------------------------- |
| phoneCodeLoginDisable | [系统设置](../../../../sys-settings/README.md)不允许使用手机验证码登录 |
| userNotFound          | 手机号没有绑定任何用户                                                        |
| userDisabled          | 用户被禁止登录                                                                |
| codeNotFound          | 系统没有向手机号发送验证码                                                    |
| locked                | 验证码错误次数过多，手机号被锁定了，暂时不能使用手机验证码进行登录            |
| online                | 用户已经在其他地方登录了                                                      |
| onDidSignin           | 登录脚本函数 `onDidSignin` 抛出异常                                           |

使用账号密码登录时`errorCode说明`：

| errorCode              | 说明                                                                                                             |
| :--------------------- | :--------------------------------------------------------------------------------------------------------------- |
| userOrPassword         | [系统设置](../../../../sys-settings/README.md)不允许使用手机验证码登录                                    |
| online                 | 用户已经在其他地方登录                                                                                           |
| locked                 | 用户被禁止登录                                                                                                   |
| userDisabled           | 账号被禁止登录                                                                                                   |
| captcha                | 图片验证码错误                                                                                                   |
| passwordDefault        | 当前登录用户的密码为默认密码                                                                                     |
| passwordInvalid        | 当前登录用户的密码不符合[系统设置](../../../../sys-settings/README.md)要求                                |
| locked                 | 多次输入密码错误被锁定，一段时间内不然使用账号密码登录                                                           |
| onDidSignin            | 登录脚本函数 `onDidSignin` 抛出异常                                                                              |
| waitPhoneCodeVerify    | 当正确输入账号密码，但是还需要继续校验手机验证码，并且手机验证码已经正确发送                                     |
| phoneNotFound          | 当正确输入账号密码，但是还需要继续校验手机验证码，但是没有找到当前正在登录用户的手机号                           |
| serviceNotFound        | 当正确输入账号密码，但是还需要继续校验手机验证码，但是检测到系统没有配置短信发送服务                             |
| phoneLocked            | 当正确输入账号密码，但是还需要继续校验手机验证码，检测到当前正在登录的用户的手机号已经被锁定                     |
| waiting                | 当正确输入账号密码，但是还需要继续校验手机验证码，检测到系统在短期内已经向当前正在登录的用户的手机号已经发送短信 |
| unexpectedRelativeInfo | 检测到用户表关联表不存在时候，这个为系统错误，此时管理员仍旧可以正常登录去处理这个错误 |
