登录

大约 3 分钟

登录

初始化 IM SDK 后,你需要首先调用接口登录。登录成功后,才能使用 IM 的功能。

用户注册

创建用户

即时通讯 IM 提供以下两种方式创建用户:

  1. 展开控制台左上角下拉框,选择需要开通即时通讯 IM 服务的项目。

  2. 点击左侧导航栏的全部产品

  3. 在下拉列表中找到即时通讯 IM 并点击。

  4. 即时通讯 IM 页面,进入运营管理标签页。

  5. 用户 页签下,点击创建IM用户

  6. 在弹出的对话框中,配置用户相关参数,点击确定

img

获取用户 token

创建用户后,在用户列表点击对应的用户的操作一栏中的更多,选择查看Token

在弹出的对话框中,可以查看用户 Token,也可以点击重新生成,生成用户 token。

img

在生产环境中,为了安全考虑,你需要部署 App Server 生成 Token,详见 Token 鉴权文档

主动登录

  1. 用户 ID + token 是更加安全的登录方式。

使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。

SDKClient.Instance.LoginWithToken(username, token,
    callback: new CallBack(

        onSuccess: () =>
        {
            Debug.Log("login succeed");
        },

        onError: (code, desc) =>
        {
            if (code == 200)
            {
                Debug.Log("Already login.");;
            }
            else 
            {
                Debug.Log($"login failed, code: {code} ; desc: {desc}");
            }
        }
    )
);
  1. 用户 ID + 密码登录是传统的登录方式。用户 ID 和密码均由你的终端用户自行决定,密码需要符合密码规则要求
SDKClient.Instance.Login(username, password,
    callback: new CallBack(

        onSuccess: () =>
        {
            Debug.Log("login succeed");
        },

        onError: (code, desc) =>
        {
            if (code == 200)
            {
                Debug.Log("Already login.");;
            }
            else 
            {
                Debug.Log($"login failed, code: {code} ; desc: {desc}");
            }
        }
    )
);

自动登录

暂时不支持自动登录。

获取当前登录的用户

你可以调用 SDKClient#CurrentUsername 方法获取当前登录用户的用户 ID。

获取登录状态

你可以调用 SDKClient#IsLoggedIn 方法获取当前用户的登录状态。

退出登录

你可以调用 Logout 方法退出登录。退出登录后,你不会再收到其他用户发送的消息。

异步方法:

SDKClient.Instance.Logout(false,
    callback: new CallBack(
    onSuccess: () =>
    {
        Debug.Log("Logout succeed");
    },

    onError: (code, desc) =>
    {
        Debug.Log($"Logout failed, code:{code}, desc:{desc}");
    }
    )
);

提示

如果调用退出方法,在收到 onSuccess 回调后才能去调用 IM 相关方法,例如 Login

账号切换

若在 app 中从当前账号切换到其他账号,你需要首先调用 Logout 方法登出,然后再调用 LoginWithTokenLogin 方法登录。

多设备登录

除了单端单设备登录,即时通讯 IM 支持同一账号在多端的多个设备上登录。多设备登录时,若同端设备数量超过限制,新登录的设备会将之前登录的设备踢下线。

关于多设备登录场景中的设备数量限制、互踢策略以及信息同步,详见多设备登录文档

更多

登录被封禁账号的提示

在声网控制台或调用 REST API 封禁用户账号后,若仍使用该账号登录,SDK会返回 "service is disabled"(305 错误), 可以根据用户这个返回值来进行相应的提示或者处理。

上次编辑于: