管理用户
创建用户
开发者可以调用以下登录方式,登录或者创建一个用户:
获取当前登录的用户
订阅登录状态变化的回调函数
获取当前用户,推荐在 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
属性来获取当前登录的用户。如果用户未登录,则 currentUser
为 null
:
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;
});