社区/文章分享/短信验证码登录最佳实践:预约、注册登录、验真场景

短信验证码登录最佳实践:预约、注册登录、验真场景

云开发推出短信验证码登录鉴权能力,相比扩展能力节省了大量配置,可以免去复杂的接入步骤,轻松和云开发登录等体系对接,本项目模拟了一个需要手机号验证的预约场景来进行说明。

短信扩展准备

准备云开发环境

打开云开发控制台,点击新建按钮,应用模板选择空模板,推荐大家选择按量计费方式进行开通。

根据提示点击下一步即可开通环境。

安装短信扩展应用

进入刚刚开通的云开发环境详情页,在左侧菜单中点击扩展应用,找到短信验证码登录,根据提示进行安装。

安装完成后会在你的云开发环境中创建以下资源:

  • 云函数:tcb-sms-auth-ext
    快速搭建短信发送服务,降低开发者发送短信门槛。
  • 云数据库:tcb-sms-auth-ext
    存储验证码相关信息。

在第 4 步操作中,根据下图进行配置。

安装完成后就可以用云开发 SDK 来使用该扩展了。

在 web 项目中使用扩展

方法一:通过包管理器引入

npm install @cloudbase/js-sdk -S
npm install --save @cloudbase/extension-sms

方法二:通过 CDN 引入

<script src="//imgcache.qq.com/qcloud/cloudbase-js-sdk/${version}/cloudbase.full.js"></script>
<script src="//unpkg.com/@cloudbase/extension-sms/built/index.umd.js"></script>

目前该扩展支持以下操作:

  • Send: 发送短信验证码
  • Verify: 校验短信验证码
  • Login: 短信验证码登录

部署预约案例

此案例功能逻辑图如下:

  1. 进入刚刚创建的云开发环境详情页面,点击左侧菜单中「数据库」进入,新建一个名为SIGN的数据集合。

  1. 下载项目代码,在 webviews/sign/index.js 中,第一行,替换文字为自己的环境 ID(一定要和前几步操作保持相同的环境 ID)。

  1. 如果你要在本地去进行测试,要在环境-安全配置中设置本地安全域名;可以将修改后的代码部署在云开发静态网站托管;预约的记录可以在数据库中 SIGN 集合找到,可以自己按照需要制作应用,或者使用 CMS 内容管理系统扩展能力。

相关说明

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

关于登录鉴权

CloudBase 提供跨平台的登录鉴权功能,您可以基于此为自己的应用构建用户体系,包括但不限于:

  • 为用户分配全局唯一的身份标识 uid;
  • 储存和管理用户个人信息;
  • 关联多种登录方式;
  • 管理用户对数据、资源的访问权限;
  • 用户行为的收集和分析。

同时,CloudBase 登录鉴权还是保护服务资源的重要手段,CloudBase 对用户端发来的每一个请求,都会进行身份和权限的检查,避免您的资源被恶意攻击者消耗或盗用。

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
开通云开发:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
产品文档:https://cloud.tencent.com/product/tcb?from=12763
技术文档:https://cloudbase.net?from=10004
技术交流群、最新资讯关注微信公众号【腾讯云云开发】