通过用户 ID 和密码获取用户 token

大约 3 分钟

通过用户 ID 和密码获取用户 token

用户注册后,使用 “用户 ID” 和 “密码” 登录。登录成功后,你的 App Server 会为客户端提供一个用户 token。

这种方式已废弃,请 通过用户 ID 获取用户 Token使用动态用户 Token,推荐前者。

前提条件

要调用环信即时通讯 RESTful API,请确保满足以下要求:

认证方式

环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 Authorization 字段:

Authorization:Bearer YourAppToken

为提高项目的安全性,环信使用 token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 使用 App Token 鉴权

HTTP 请求

POST https://{host}/{org_name}/{app_name}/token

路径参数

参数类型是否必需描述
hostString环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息
org_nameString环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息
app_nameString你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息

请求 header

参数类型是否必需描述
Content-TypeString内容类型。请填 application/json
AcceptString内容类型。请填 application/json

请求 body

参数类型是否必需描述
grant_typeString授权方式。将值设为 password,通过用户 ID 和密码获取 token,需设置 usernamepassword 参数。
usernameString用户 ID。
passwordString用户的登录密码。
ttlLongtoken 有效期,单位为秒。
- 若传入该参数,token 有效期以传入的值为准。
- 若不传该参数,以 环信控制台open in new window用户管理 页面的 token 有效期的设置为准。
- 若设置为 0,则 token 永久有效。
注意:VIP 5 集群该参数单位为毫秒。

HTTP 响应

响应 body

如果返回的 HTTP 状态码为 200,表示成功获取 token,响应包体中包含以下字段:

字段类型描述
access_tokenString有效的用户 token。
expires_inLongtoken 有效期,单位为秒。在有效期内无需重复获取。
注意:VIP 5 集群该参数单位为毫秒。
userJSON用户相关信息。
user.uuidString用户的 UUID。即时通讯服务为该请求中的 app 或用户生成的唯一内部标识,用于生成用户 token。
user.typeString对象类型,无需关注。
user.createdLong注册用户的 Unix 时间戳,单位为毫秒。
user.modifiedLong最近一次修改用户信息的 Unix 时间戳,单位为毫秒。
user.usernameString用户 ID。
user.activatedBool用户是否为活跃状态:
- true:用户为活跃状态。
- false:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用解禁用户的 API对账号解除封禁。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考响应状态码了解可能的原因。

示例

请求示例

curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
   "grant_type": "password",
   "username": "C",
   "password": "1",
   "ttl": "1024000"
 }' 'http://XXXX/XXXX/XXXX/token'

响应示例

{
    "access_token": "YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A",
    "expires_in": 1024000,
    "user": {
        "uuid": "aa471ee0-XXXX-XXXX-ace5-f90ff121234e",
        "type": "user",
        "created": 1637740861395,
        "modified": 1637740861395,
        "username": "c",
        "activated": true
    }
}