跳到主要内容

短信验证码登录

使用短信验证码登录,您可以让用户使用自己的手机号,结合短信验证码或密码注册、登录 CloudBase

使用限制及费用#

  • 新开通的按量计费环境,或者 2021 年 4 月 9 日前开通的按量计费环境,享有首月 100 条的免费额度;
  • 超出免费额度的需求,开发者可以前往云开发控制台 购买资源包
  • 短信下发存在频率限制:
    • 同一号码 30 秒内最多发送 1 条;
    • 同一手机号一个自然日最多发送 10 条;

开通短信验证码登录#

进入 云开发 CloudBase 控制台,在 登录授权 设置页面中,开启短信验证码登录:

登录流程#

第 1 步:初始化 SDK#

import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({  env: "your-env-id"});

第 2 步:使用手机号注册账号#

首先需要用户填入自己的手机号,然后调用 SDK 的发送短信验证码接口:

// 假设用户输入的手机号为 (+86) 13800000000const phoneNumber = "+86 13800000000"const verification = await auth.getVerification({  phone_number: phoneNumber});

调用发送短信接口后,用户手机将会收到云开发的短信验证码。用户填入短信验证码后,需要调用下面的接口进行验证:

// 假设用户输入的验证码为 000000const verificationCode = "000000";// 验证验证码的正确性const verificationTokenRes = await auth.verify({  verification_id: verification.verification_id,  verification_code: verificationCode});

第 3 步:使用手机号注册并登录 CloudBase#

// 如果该用户已经存在,则登录if (verification.is_user) {  await auth.signIn({    username: phoneNumber,    verification_token: verificationTokenRes.verification_token  });} else {  // 否则,则注册新用户,注册新用户时,可以设置密码,用户名  // 备注:signUp 成功后,会自动登录  await auth.signUp({    phone_number: phoneNumber,    verification_code: verificationCode,    verification_token: verificationTokenRes.verification_token,    // 可选,设置用户名    username: "userFromMobile",    // 可选,设置密码    password: "password123",  });}
密码强度要求

密码长度不小于 8 位,不大于 32 位,需要包含字母和数字。