生成 Login Ticket
生成用于 SSO 免登的 Login Ticket。
接口说明
| 属性 | 值 |
|---|---|
| 请求方式 | POST |
| 请求路径 | /im-user/api/v1/oauth/ticket |
| 鉴权方式 | User Token |
说明
此接口由 IM 系统内部调用,第三方应用无需直接调用。当用户在 IM 中点击打开应用时,IM 会自动调用此接口生成 Ticket 并跳转到第三方应用。
请求头
Authorization: Bearer {userAccessToken}
Content-Type: application/json
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
appId | number | 是 | 应用 ID |
workspaceId | number | 是 | 工作空间 ID |
请求示例
{
"appId": 123,
"workspaceId": 1001
}
响应参数
| 参数 | 类型 | 说明 |
|---|---|---|
ticket | string | 登录票据,以 lt_ 开头 |
expiresIn | number | 有效期(秒),默认 300(5分钟) |
响应示例
{
"code": 200,
"data": {
"ticket": "lt_550e8400e29b41d4a716446655440000",
"expiresIn": 300
}
}
Ticket 特性
| 特性 | 说明 |
|---|---|
| 一次性使用 | 验证后立即失效,不可重复使用 |
| 短有效期 | 5 分钟内必须使用,超时自动失效 |
| 绑定用户 | 与生成时的用户绑定,验证时返回该用户信息 |
| 绑定应用 | 与生成时的应用绑定,只能由该应用验证 |
跳转参数
IM 跳转到第三方应用时,会携带以下 URL 参数:
| 参数 | 类型 | 说明 |
|---|---|---|
ticket | string | 登录票据 |
workspace_id | number | IM 工作空间 ID |
跳转 URL 示例
https://your-app.com/api/im/sso/entry
?ticket=lt_550e8400e29b41d4a716446655440000
&workspace_id=1001
错误码
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 400 | appId不能为空 | 确保传递了 appId 参数 |
| 400 | workspaceId不能为空 | 确保传递了 workspaceId 参数 |
| 400 | 应用不存在 | 检查 appId 是否正确 |
| 400 | 工作空间不存在 | 检查 workspaceId 是否正确 |
| 400 | 应用未安装到该工作空间 | 需要先安装应用到目标工作空间 |
| 401 | 用户身份验证失败,请重新登录 | 用户需要重新登录 IM |