Skip to main content

功能说明

账户密码登录接口,用于 账号/手机号/邮箱 + 密码 登录。

其中 accountphoneemail 三选一即可。

请求说明

请求鉴权:该接口为免登录接口,仅需携带 appkey 请求头;Authorization 不需要。登录成功后会在返回值中下发 authorization,供后续需要鉴权的接口使用。

请求类型POST

请求限频100次/秒

请求地址:https://请求域名/jim/login

Content-Typeapplication/json

请求参数

参数数据类型是否必填参数说明
accountstring账号,建议字母+数字组合,长度 6~20 位;注:accountphoneemail 三选一即可
phonestring手机号
emailstring邮箱地址
passwordstring账号密码(明文)

password 使用规则

  • 客户端传 明文密码(例如 123456),服务端会执行 SHA1(password)(hex 小写)后与数据库中的 LoginPass 比对。
  • 不要在客户端先对 passwordmd5/sha1 再传,否则服务端会再次 SHA1(),导致校验不通过。

示例:SHA1("123456") = 7c4a8d09ca3762af61e59520943dc26494f8941b(仅用于理解服务端校验方式;请求参数仍传明文 123456)。

请求示例

POST /jim/login HTTP/1.1
appkey: appkey
Content-Type: application/json

{
"account":"username",
"password":"123456"
}

也可以使用 curl 调用:

curl -X POST 'https://$api/jim/login' \
-H 'appkey: <你的appkey>' \
-H 'Content-Type: application/json' \
-d '{"account":"username","password":"123456"}'

JS fetch 示例:

await fetch("https://$api/jim/login", {
method: "POST",
headers: {
appkey: "<你的appkey>",
"Content-Type": "application/json",
},
body: JSON.stringify({
account: "username",
password: "123456",
}),
});

响应示例

{
"code":0,
"msg":"sucess",
"data":{
"user_id":"userid1",
"authorization":"xxxxxxxxx",
"nickname":"user1",
"avatar":"xxxxxxxx",
"status":0,
"im_token":"xxxxxxxxx"
}
}

常见错误码

code含义典型触发条件
17001缺少 appkey请求头未携带 appkey(在服务端鉴权中间件校验)
17002appkey 不存在/应用不存在appkey 对应应用不存在,或服务端无法获取 IM SDK 实例
17003请求参数非法JSON 解析失败;或 password 为空;或 account/phone/email 同时为空
17012用户不存在account/phone/email 未找到用户
17013密码错误服务端校验 SHA1(password) 与用户 LoginPass 不一致
17004内部服务超时/调用失败服务端调用 IM Server 注册/换取 token 失败(网络/超时等)