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