账户关联
每个云开发用户账号,除了最初注册时使用的登录方式外,还可以关联其他登录方式。关联后,无论用户使用哪种登录方式,均可以登录到同一个云开发账户。
#
关联微信登录关联微信登录的步骤如下:
用户以任意一种登录方式(除微信登录)登录云开发
获取微信授权 token
提示
可以参考微信授权登录获取 provider_token
。
- 使用授权 token 关联微信登录
const app = cloudbase.init({ env: "xxxx-yyy"});const provider_token = "test_provider_token"; // 上一步取得的授权 token
const auth = app.auth();await auth.bindWithProvider({ provider_token});
#
关联邮箱密码登录假设当前用户支持密码登录,则下面的方式可以为当前用户绑定邮箱,绑定后,用户则可以使用邮箱+密码完成登录:
- 用户以任意一种登录方式登录云开发
- 向用户邮箱发送验证邮件
const auth = app.auth();// 假设用户邮箱为 "test@example.com"const email = "test@example.com";
// 获取邮箱验证码const verification = await auth.getVerification({ email: email});
- 校验用户输入的验证码并获取 sudo_token
// 假设用户输入的验证码为 000000const verificationCode = "000000";
// 校验验证码const verificationTokenRes = await auth.verify({ verification_id: verification.verification_id, verification_code: verificationCode});
// 假设用户输入的密码为 passwdconst password = "passwd";// 获取 sudo_token, sudo_token 的过期时间默认为10分钟。const sudoToken = await auth.sudo({ password: password});
- 使用校验 token 和 sudo_token 绑定邮箱
await auth.bindEmail({ sudo_token: sudoToken, email: email, verification_token: verificationTokenRes.verification_token});
#
关联手机号密码登录假设当前用户支持密码登录,则下面的方式可以为当前用户绑定手机号,绑定后,用户则可以使用手机号+密码完成登录:
- 用户以任意一种登录方式登录云开发
- 向用户手机发送验证短信
const auth = app.auth();// 假设用户手机号为 13800000000const phoneNumber = "+86 13800000000";
// 获取验证码const verification = await auth.getVerification({ phone_number: phoneNumber});
- 校验用户输入的验证码并获取 sudo_token
// 假设用户输入的验证码为 000000const verificationCode = "000000";
// 校验验证码const verificationTokenRes = await auth.verify({ verification_id: verification.verification_id, verification_code: verificationCode});
// 假设用户输入的密码为 passwdconst password = "passwd";// 获取 sudo_token, sudo_token 的过期时间默认为10分钟。const sudoToken = await auth.sudo({ password: password});
- 使用校验 token 和 sudo_token 绑定手机号
await auth.bindPhoneNumber({ sudo_token: sudoToken, phone_number: phoneNumber, verification_token: verificationTokenRes.verification_token});