跳到主要内容

管理用户

创建用户#

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

获取当前登录的用户#

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

获取当前用户,推荐在 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;});