Skip to main content

Manage Users

danger

Authentication (v1) is no longer maintained. Please migrate to Authentication (v2).

Create User

Developers can call the following login methods to sign in or create a user:

Get Currently Logged-in User

Subscribe to Callback Function for Login State Changes

To get the current user, it is recommended to set a callback function on the Auth object. This function will be triggered whenever the user's login state changes and will provide the current LoginState:

import cloudbase from "@cloudbase/js-sdk";

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

// Set an observer
auth.onLoginStateChanged((loginState) => {
if (loginState) {
// The user is now logged in
} else {
// Not logged in
}
});

Directly Get Current User

You can also use the Auth.currentUser property to get the currently logged-in user. If the user is not logged in, currentUser is null:

const user = auth.currentUser;

if (user) {
// The user is now logged in
} else {
// Not logged in
}

Get User Profile

You can obtain the user's profile information through various properties of the User object:

const user = auth.currentUser;
let uid, nickName, gender, avatarUrl, location;

if (user) {
// Cloud Base unique user ID
uid = user.uid;

// Nickname
nickName = user.nickName;

// Gender
gender = user.gender;

// Avatar URL
avatarUrl = user.avatarUrl;

// User geographic location
location = user.location;
}

Update User Profile

You can use the User.update method to update the user's profile information. For example:

const user = auth.currentUser;

user
.update({
nickName: "Tony Stark",
gender: "MALE",
avatarUrl: "https://..."
})
.then(() => {
// User information is updated successfully.
});

Refresh User Profile Information

For a multi-device application, users may update their personal information on one device, and other devices may need to refresh the information:

const user = auth.currentUser;

// Refresh user information.
user.refresh().then(() => {
// After refreshing, the obtained user information will be the latest.
const { nickName, gender, avatarUrl } = user;
});