跳到主要内容

用户管理

用户类型

云开发提供三种用户类型,分别适用于不同的业务场景:

用户类型角色用户数限制用户信息创建方式登录方式
组织成员在组织架构内的用户
支持分配自定义角色
对应旧版用户体系「内部用户」
受套餐限制
参考 计费文档
系统保存- 前往 组织架构 页面新增
- 通过 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}`);
}

常用用户属性

属性类型说明
uidstring云开发唯一用户 ID
namestring用户昵称
genderstring用户性别(MALE/FEMALE/UNKNOWN)
created_fromstring用户创建来源

💡 提示:更多用户属性请参考 User 对象 API 文档

更新用户资料

使用 User.update() 方法可以更新用户的个人资料信息。

使用示例

const user = auth.currentUser;

user.update({
name: 'Tony Stark',
gender: 'MALE',
})
.then(() => {
console.log('用户资料更新成功');
})
.catch((error) => {
console.error('更新失败:', error);
});

可更新的字段

字段类型说明
namestring用户昵称
genderstring用户性别(MALE/FEMALE/UNKNOWN)

⚠️ 注意:部分用户信息(如 uidcreated_from 等)为系统字段,无法通过此方法修改

刷新用户资料

在多端应用中,用户可能在某个端更新了个人资料,其他端需要同步最新信息。使用 User.refresh() 方法可以从服务器重新获取最新的用户信息。

使用示例

const user = auth.currentUser;

// 刷新用户信息
user.refresh()
.then(() => {
// 刷新成功,获取最新的用户信息
const { name, gender } = user;
console.log(`当前用户: ${name}, 性别: ${gender}`);
})
.catch((error) => {
console.error('刷新用户信息失败:', error);
});

使用场景

  • 用户在其他设备或平台更新了个人资料
  • 管理员后台修改了用户信息
  • 需要获取最新的用户状态和权限信息

💡 提示:刷新操作会从服务器同步最新数据,建议仅在必要时调用,避免频繁请求

其他参考

相关文档