短信验证码登录
使用短信验证码登录,您可以让用户使用自己的手机号,结合短信验证码或密码注册、登录 CloudBase。
使用限制及费用
- 新开通的按量计费环境,或者 2021 年 4 月 9 日前开通的按量计费环境,享有首月 100 条的免费额度;
- 超出免费额度的需求,开发者可以前往云开发控制台 购买资源包;
- 短信下发存在频率限制:
- 同一号码 30 秒内最多发送 1 条;
- 同一手机号一个自然日最多发送 10 条;
开通短信验证码登录
进入 云开发 CloudBase 控制台,在 登录授权 设置页面中,开启短信验证码登录:
登录流程
第 1 步:初始化 SDK
- Web
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({
env: "your-env-id"
});
第 2 步:使用手机号注册账号
首先需要用户填入自己的手机号,然后调用 SDK 的发送短信验证码接口:
- Web
// 假设用户输入的手机号为 (+86) 13800000000
const phoneNumber = "+86 13800000000"
const verification = await auth.getVerification({
phone_number: phoneNumber
});
调用发送短信接口后,用户手机将会收到云开发的短信验证码。用户填入短信验证码后,需要调用下面的接口进行验证:
- Web
// 假设用户输入的验证码为 000000
const verificationCode = "000000";
// 验证验证码的正确性
const verificationTokenRes = await auth.verify({
verification_id: verification.verification_id,
verification_code: verificationCode
});
第 3 步:使用手机号注册并登录 CloudBase
- Web
// 如果该用户已经存在,则登录
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 位,需要包含字母和数字。