跳到主要内容

账户关联

每个云开发用户账号,除了最初注册时使用的登录方式外,还可以关联其他登录方式。关联后,无论用户使用哪种登录方式,均可以登录到同一个云开发账户。

关联手机号密码登录

当前用户支持密码登录时,可以为用户绑定手机号,绑定后用户可以使用「手机号+密码」完成登录:

  1. 用户以任意一种登录方式登录
  2. 获取 sudo_token,这里以密码方式获取 sudo_token,还可以使用邮箱验证码、手机号验证码等方式,具体请参考 Auth.sudo 接口
import cloudbase from "@cloudbase/js-sdk";

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

// 获取 auth 实例
const auth = app.auth();

// 假设用户输入的密码为 passwd
const password = "passwd";

// 获取 sudo_token,sudo_token 的过期时间默认为 10 分钟
const sudo_token = await auth.sudo({
password: password
});
  1. 向用户手机发送验证短信
// 假设用户手机号为 13800000000
const phoneNumber = "+86 13800000000";

// 发送验证码
const verification = await auth.getVerification({
phone_number: phoneNumber
});
  1. 校验用户输入的验证码
// 假设用户输入的验证码为 000000
const verificationCode = "000000";

// 校验验证码
const verificationTokenRes = await auth.verify({
verification_id: verification.verification_id,
verification_code: verificationCode
});
const verification_token = verificationTokenRes.verification_token;
  1. 使用 verification_tokensudo_token 绑定手机号
await auth.bindPhoneNumber({
sudo_token: sudo_token,
phone_number: phoneNumber,
verification_token: verification_token
});

关联邮箱密码登录

当前用户支持密码登录时,可以为用户绑定邮箱,绑定后用户可以使用「邮箱+密码」完成登录:

  1. 用户以任意一种登录方式登录云开发
  2. 获取 sudo_token,这里以密码方式获取 sudo_token,还可以使用邮箱验证码、手机号验证码等方式,具体请参考 Auth.sudo 接口
// 假设用户输入的密码为 passwd
const password = "passwd";

// 获取 sudo_token,sudo_token 的过期时间默认为 10 分钟
const sudo_token = await auth.sudo({
password: password
});
  1. 给邮箱发送验证码
// 假设用户邮箱为 "test@example.com"
const email = "test@example.com";

// 获取邮箱验证码
const verification = await auth.getVerification({
email: email
});
  1. 校验用户输入的验证码
// 假设用户输入的验证码为 000000
const verificationCode = "000000";

// 校验验证码
const verificationTokenRes = await auth.verify({
verification_id: verification.verification_id,
verification_code: verificationCode
});
const verification_token = verificationTokenRes.verification_token;
  1. 使用 verification_tokensudo_token 绑定邮箱
await auth.bindEmail({
sudo_token: sudo_token,
email: email,
verification_token: verification_token
});

关联微信登录

关联微信登录的步骤如下:

  1. 用户以任意一种登录方式(除微信登录)登录云开发

  2. 参考 微信授权登录 获取微信授权 provider_token

  3. 使用授权 token 关联微信登录

const app = cloudbase.init({
env: "xxxx-yyy"
});
const provider_token = "test_provider_token"; // 上一步取得的授权 token

const auth = app.auth();
await auth.bindWithProvider({
provider_token
});