用户管理
用户类型
云开发提供三种用户类型,分别适用于不同的业务场景:
| 用户类型 | 角色 | 用户数限制 | 用户信息 | 创建方式 | 登录方式 |
|---|---|---|---|---|---|
| 组织成员 | 在组织架构内的用户 支持分配自定义角色 对应旧版用户体系「内部用户」 | 受套餐限制 参考 计费文档 | 系统保存 | - 前往 组织架构 页面新增 - 通过 HTTP API 新增 | 登录方式 |
| 注册用户 | 通过任意注册方式注册的用户 固定「注册用户」角色 对应旧版用户体系「外部用户」 | 不限用户数 | 系统保存 | - 前往 用户管理 页面新增 - 用户通过 用户注册 自主注册 | 登录方式 |
| 匿名用户 | 固定的「默认访客」角色 | 不限用户数 | 系统不保存 | 无需注册 | 匿名登录 |
用户类型说明
组织用户:适用于组织内部成员,如企业员工、团队成员等。组织用户可以分配自定义角色,拥有更细粒度的权限控制。在 云开发平台/身份认证/组织架构 页面创建的用户为组织用户。
注册用户:适用于应用的终端用户,如 C 端客户、社区成员等。注册用户具有固定的默认注册用户角色,不受用户数限制。在 云开发平台/身份认证/用户管理 页面手动创建的用户为注册用户。
匿名用户:适用于无需身份验证的临时访问场景,系统不保存用户信息,用户退出后无法追溯身份。
用户信息管理
获取当前登录用户
您可以通过 auth.currentUser 属性或 auth.getCurrentUser() 方法来获取当前登录用户的信息。
使用方式
import cloudbase from '@cloudbase/js-sdk';
const app = cloudbase.init({
env: 'your-env-id',
});
// 获取 auth 实例
const auth = app.auth();
// 用户登录后,获取当前用户信息
const user = auth.currentUser;
// 或者使用异步方法
// const user = await auth.getCurrentUser()
if (user) {
console.log('当前用户 UID:', user.uid);
} else {
console.log('用户未登录');
}
返回值
该方法返回当前登录用户的 User 实例。如果用户未登录,则返回 null。
💡 提示:
auth实例的初始化方式请参考 SDK 初始化
获取用户资料
通过 User 对象的属性可以获取用户的个人资料信息:
const user = auth.currentUser;
if (user) {
// 云开发唯一用户 ID
const uid = user.uid;
// 用户昵称
const name = user.name;
// 用户性别
const gender = user.gender;
// 用户创建来源
const created_from = user.created_from;
console.log(`用户 ${name} (${uid}) 的性别为 ${gender}`);
}
常用用户属性
| 属性 | 类型 | 说明 |
|---|---|---|
uid | string | 云开发唯一用户 ID |
name | string | 用户昵称 |
gender | string | 用户性别(MALE/FEMALE/UNKNOWN) |
created_from | string | 用户创建来源 |
💡 提示:更多用户属性请参考
User对象 API 文档
更新用户资料
使用 User.update() 方法可以更新用户的个人资料信息。
使用示例
const user = auth.currentUser;
user.update({
name: 'Tony Stark',
gender: 'MALE',
})
.then(() => {
console.log('用户资料更新成功');
})
.catch((error) => {
console.error('更新失败:', error);
});
可更新的字段
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 用户昵称 |
gender | string | 用户性别(MALE/FEMALE/UNKNOWN) |
⚠️ 注意:部分用户信息(如
uid、created_from等)为系统字段,无法通过此方法修改
刷新用户资料
在多端应用中,用户可能在某个端更新了个人资料,其他端需要同步最新信息。使用 User.refresh() 方法可以从服务器重新获取最新的用户信息。
使用示例
const user = auth.currentUser;
// 刷新用户信息
user.refresh()
.then(() => {
// 刷新成功,获取最新的用户信息
const { name, gender } = user;
console.log(`当前用户: ${name}, 性别: ${gender}`);
})
.catch((error) => {
console.error('刷新用户信息失败:', error);
});
使用场景
- 用户在其他设备或平台更新了个人资料
- 管理员后台修改了用户信息
- 需要获取最新的用户状态和权限信息
💡 提示:刷新操作会从服务器同步最新数据,建议仅在必要时调用,避免频繁请求
其他参考
- 存储额外的用户信息 - 如何使用自定义用户表存储业务相关的扩展信息
- 为注册用户赋予管理员权限 - 如何将注册用户转为组织成员并分配管理员角色