有奖捉虫:云通信与企业服务文档专题,速来> HOT

创建用户

开发者可以调用以下登录方式,登录或者创建一个用户:

获取当前登录的用户

订阅登录状态变化的回调函数

获取当前用户,推荐在 Auth 对象上设置一个回调函数,每当用户登录状态转变时,会触发这个回调函数,并且获得当前的 LoginState
import cloudbase from "@cloudbase/js-sdk";

const app = cloudbase.init({
env: "your-env-id"
});
const auth = app.auth();

// 设置一个观察者
auth.onLoginStateChanged((loginState) => {
if (loginState) {
// 此时用户已经登录
} else {
// 没有登录
}
});

直接获取当前用户

您还可以使用 Auth.currentUser 属性来获取当前登录的用户。如果用户未登录,则 currentUsernull
const user = auth.currentUser;

if (user) {
// 此时用户已经登录
} else {
// 没有登录
}

获取用户个人资料

您可以通过 User 对象的各个属性来获取用户的个人资料信息:
const user = auth.currentUser;
let uid, nickName, gender, avatarUrl, location;

if (user) {
// 云开发唯一用户 id
uid = user.uid;

// 昵称
nickName = user.nickName;

// 性别
gender = user.gender;

// 头像URL
avatarUrl = user.avatarUrl;

// 用户地理位置
location = user.location;
}

更新用户个人资料

您可以使用 User.update 方法来更新用户的个人资料信息。例如:
const user = auth.currentUser;

user
.update({
nickName: "Tony Stark",
gender: "MALE",
avatarUrl: "https://..."
})
.then(() => {
// 更新用户资料成功
});

刷新用户资料信息

对于一个多端应用,用户可能在其中某个端上更新过自己的个人资料信息,此时其它端上可能需要刷新信息:
const user = auth.currentUser;

// 刷新用户信息
user.refresh().then(() => {
// 刷新后,获取到的用户信息即为最新的信息
const { nickName, gender, avatarUrl } = user;
});