跳到主要内容

账户关联

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

关联微信登录

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

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

  2. 获取微信授权 token

提示

可以参考微信授权登录获取 provider_token

  1. 使用授权 token 关联微信登录
const app = cloudbase.init({
env: "xxxx-yyy"
});
const provider_token = "test_provider_token"; // 上一步取得的授权 token

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

关联邮箱密码登录

假设当前用户支持密码登录,则下面的方式可以为当前用户绑定邮箱,绑定后,用户则可以使用邮箱+密码完成登录:

  1. 用户以任意一种登录方式登录云开发
  2. 获取 sudo_token,这里以密码的方式获取 sudo token,还可以使用邮箱验证码、手机号验证码等方式,具体请参考 Auth.sudo 接口。
const auth = app.auth();

// 假设用户输入的密码为 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_token 和 sudo_token 绑定邮箱
await auth.bindEmail({
sudo_token: sudo_token,
email: email,
verification_token: verification_token
});

关联手机号密码登录

假设当前用户支持密码登录,则下面的方式可以为当前用户绑定手机号,绑定后,用户则可以使用手机号+密码完成登录:

  1. 用户以任意一种登录方式登录云开发
  2. 获取 sudo_token,这里以密码的方式获取 sudo token,还可以使用邮箱验证码、手机号验证码等方式,具体请参考 Auth.sudo 接口。
const auth = app.auth();

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

// 获取 sudo_token, sudo_token 的过期时间默认为10分钟。
const sudo_token = await auth.sudo({
password: password
});
  1. 向用户手机发送验证短信
const auth = app.auth();
// 假设用户手机号为 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_token 和 sudo_token 绑定手机号
await auth.bindPhoneNumber({
sudo_token: sudo_token,
phone_number: phoneNumber,
verification_token: verification_token
});