短信验证码登录
使用短信验证码登录,您可以让用户使用自己的手机号,结合短信验证码或密码注册、登录 CloudBase。
版本说明
本文将以 V2 版本进行介绍
使用限制及费用
- 新开通的按量计费环境,或者 2021 年 4 月 9 日前开通的按量计费环境,享有首月 100 条的免费额度;
- 超出免费额度的需求,开发者可以前往云开发控制台 购买资源包;
- 短信下发存在频率限制:
- 同一号码 30 秒内最多发送 1 条;
- 同一手机号一个自然日最多发送 10 条;
前置动作
开启短信验证码登录
- 前往 云开发/身份认证
- 在登录方式列表中,选择 短信验证码登录 方式,点击开启
注册流程
使用手机号进行注册时,您需要先发送短信验证码,然后通过验证码完成注册。
auth 实例请参考 SDK 初始化
// 1. 发送手机号验证码
// 需要加区号
const phoneNumber = "+86 13800000000";
const verification = await auth.getVerification({
phone_number: phoneNumber
});
// 2. 验证码验证
// 假设这里收到用户填写的验证码"000000"
const verificationCode = "000000";
// 验证验证码的正确性
const verificationTokenRes = await auth.verify({
verification_id: verification.verification_id,
verification_code: verificationCode
});
// 3. 如果该用户已经存在,则登录
if (verification.is_user) {
await auth.signIn({
username: phoneNumber,
verification_token: verificationTokenRes.verification_token
});
} else {
// 4. 否则,则注册新用户,注册新用户时,可以设置密码,用户名
// 备注:signUp 成功后,会自动登录
await auth.signUp({
phone_number: phoneNumber,
verification_code: verificationCode,
verification_token: verificationTokenRes.verification_token,
// 可选,设置昵称
name: "手机用户",
// 可选,设置密码
password: "password",
// 可选,设置登录用户名
username: "username"
});
}
密码强度要求
密码长度不小于 8 位,不大于 32 位,需要包含字母和数字。
登录流程
手机号密码登录
Auth.signIn 方法可用于 手机号,邮箱,用户名 登录
await auth.signIn({
username: phoneNumber,
password: "your-password"
});
验证码登录
Auth.signInWithSms 方法可用于 手机号验证码 登录
const phoneNum = 'xxx'
// 发送验证码
const verificationInfo = await auth.getVerification({
phone_number: phoneNum,
});
// 假设这里收到用户填写的验证码"000000"
const verificationCode = "000000";
// 验证码登录
await auth.signInWithSms({
verificationInfo,
verificationCode: verificationCode,
phoneNum: phoneNum,
});