客户身份(CIAM)
统一用户密码登录
统一用户密码登录接口调用过程中,根据配置返回不同结果。正常调用成功会返回用户的session_token,开启密码过期检查会返回state_token,失败返回失败信息。
# 请求说明
POST https://{your_domain}/api/v2/sdk/login/auth
# 请求头
参数名 | 中文名称 | 必须 | 类型 | 示例 |
---|---|---|---|---|
X-operating-sys-version | 调用方客户端操作系统版本 | 是 | String | windows10.1.1 |
X-device-fingerprint | 调用方客户端设备指纹 | 是 | String | 156aysdna213sc50 |
X-device-ip | 调用方客户端IP | 否 | String | 192.168.1.2 |
X-agent | User-Agent信息 | 是 | String | Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) |
X-L | 用于国际化语言设置 | 否 | String | zh |
X-client-id | 应用授权ID | 是 | String | nTo1eRIub60vPb54WeE6aojPwYwImtl4 |
content-type | 内容格式类型 | 是 | String | application/json |
# 请求示例
{
"user_name":"test01",
"password":"123456"
}
1
2
3
4
2
3
4
# 请求参数
参数名 | 中文名称 | 必须 | 类型 | 描述 |
---|---|---|---|---|
user_name | 账号 | 是 | String | 账号 |
password | 密码 | 是 | String | 密码 |
# 返回示例
成功示例1(成功匹配用户返回session_token):
HTTP/1.1 200 OK
Content-Type: application/json
{
"session_token": "btsiBjx85prcZu6I6Ki057Tmw3nSF2VO",
"expire": 432000,
"status": "SUCCESS",
"id_token": "eyJ0NiJ9.eyJ1cI6IjIifX0.DeWt4QuZXso"
}
成功示例2(返回密码快过期流程):
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "PASSWORD_WARN",
"state_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"data": "{\"maxLength\":18,\"minLength\":8,\"regEx\":\"^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)(?![a-z0-9]+$)(?![a-z~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)(?![0-9~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)[a-zA-Z0-9~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]{1,}$\",\"tip\":\"至少包含数字、大写字母、小写字母和特殊字符中的3种\"}"
}
成功示例3(返回密码已过期流程):
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "PASSWORD_EXPIRED",
"state_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"data": "{\"maxLength\":18,\"minLength\":8,\"regEx\":\"^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)(?![a-z0-9]+$)(?![a-z~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)(?![0-9~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]+$)[a-zA-Z0-9~!#$%&+\\\\-,*:;<=>@_?^、`~\\\\./]{1,}$\",\"tip\":\"至少包含数字、大写字母、小写字母和特殊字符中的3种\"}"
}
错误示例:
HTTP/1.1 400 Bad Request
{
"error_code": "IDAAS.SDK.LOGIN.0002",
"error_msg": "Invalid account or password. Remaining times: 9"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 返回参数
参数名 | 中文名称 | 类型 | 描述 |
---|---|---|---|
status | 登录流程状态标识 | String | 该字段可能返回的值如下: SUCCESS 登录成功 PASSWORD_WARN 密码快过期 PASSWORD_EXPIRED 密码已过期 ACCESS_DENIED 拒绝访问 |
expire | session_token有效期 | Number | Session_token有效期,有效期内可使用session_token获取ticket |
session_token | 用户session_token | String | 用户session_token,可使用该token调用IDaaS接口获取新的id_token |
state_token | 用户带有状态的令牌 | String | 用户带有状态的令牌 |
id_token | 短期有效,接口调用令牌 | String | 该字段为jwt格式,包含用户身份信息。可参考根据id_token获取用户信息获取用户信息。令牌有效期默认为5分钟,支持可配置 |
data | 返回说明 | String | 返回说明 |
# 错误码
状态码 | 错误码 | 错误信息 | 处理措施 |
---|---|---|---|
400 | IDAAS.SDK.PARAM.0001 | Device information is incomplete | 请检查输入的设备信息是否完整 |
设备信息不完整 | |||
400 | IDAAS.SDK.PARAM.0002 | clientId cannot be empty | 请检查输入的clientId是否为空 |
clientId不能为空 | |||
400 | IDAAS.SDK.PARAM.0003 | The app is not registered, please register the app first | 请检查输入的clientId是否正确 |
应用未注册,请先注册应用 | |||
400 | IDAAS.SDK.PARAM.0010 | Account cannot be empty | 请检查输入的账号是否为空 |
账号不能为空 | |||
400 | IDAAS.SDK.USER.0006 | Password cannot be empty | 请检查输入的密码是否为空 |
密码不能为空 | |||
400 | IDAAS.SDK.LOGIN.0001 | User has been locked out due to multiple login failures. It will be unlocked in {0} minutes and {1} seconds | 请解锁后重试 |
由于多次登录失败,用户已被锁定。 它将在 {0} 分钟和 {1} 秒内解锁 | |||
400 | IDAAS.SDK.LOGIN.0002 | Invalid account or password. Remaining times: {0} | 请检查输入的用户名或密码是否正确 |
无效的账号或密码。 剩余次数:{0} | |||
500 | IDAAS.SDK.COM.0002 | System busy, please try again later | 请重新调用或联系竹云工作人员 |
系统繁忙,请稍后再试 | |||
400 | IDAAS.SDK.USER.0039 | User is disabled | 请联系管理员 |
用户已被禁用 |