更新记录

1.0.0(2020-06-23)

首次提交,欢迎大家评论反馈


平台兼容性

阿里云 腾讯云 支付宝云
×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


使用前请先新建一张emailCode表(大小写不能错)
event参数表:
method
请求方法名:
sendCode
发送验证码,并且返回主键,数据库中会保存,用于校验验证码
sendCustom
用于发送自定义邮件,比如注册成功之类的, 数据库不做保存,如果想保存.此类邮件也可以用sendCode方法.就会自动保存
validateCode
用于校验用户发送的验证码是否正确与sendCode和sendCustom不同的是,需要在event中传参多四个:
code:填写的验证码(当method为sendCode时必填)
email:发送的邮箱(必填)
codeId:用记查询发送的短信验证码(当method为validateCode时必填)
effectiveTime:验证码的有效时间,以秒为短信,比如5分钟则传300(当method为validateCode时必填)
serviceType
要发送的服务类型.qq为QQ邮箱,这里只是为了以后兼容多邮箱做准备
html
发送邮件的内容. 请在event.html中自己编写发送邮件的内容,如果是发送验证码的话也要编写内容.但是验证码字段要在内容中写上#code#,如:感谢您注册XXX,您的验证码是#code#,请勿泄漏给他人.(当method为sendCode与sendCustom时必填)
subject
为邮件的标题(当method为sendCode与sendCustom时必填)

传递参数示例:
var sendCodeJson = {
serviceType: 'qq',
method: 'sendCode',
html: '感谢您注册,注册码是#code#',
email: '75754567@qq.com',
subject: '注册验证码'
}
var sendCustomJson = {
serviceType: 'qq',
method: 'sendCustom',
html: '感谢您注册XXX网站',
email: '75754567@qq.com',
subject: '注册成功'
}
var validateCodeJson = {
code: '1234',
method: 'validateCode',
email: '75754567@qq.com',
codeId: 'dsafklkno324980235jkl', effectiveTime:300 }
各方法请求后返回参数示例:
var sendCodeResult={
status:1,
id:'5ef20fae09e2e5004d3110be' }
var sendCustomResult={
status:1 }
以上两种请求方法,status为1则是成功,为0则是失败
var validateCodeJson = {
status:1 }
验证验证码的状态会比较多.这里给大家一个json字典做展示:
validateCodeStatusJson: {
'-5':'验证失败',
'-4': '验证码已使用',
'-3': '验证码已失效',
'-2': '当前邮箱未发送验证码',
'-1': '还未发送验证码',
'0': '验证码不正确',
'1': '验证成功'
}

模块中的index.js的30行左右的地方有一个emailConfig的JSON.里面有auth:{user:'xxx',pass:'xxxx'}的配置,这里的user为发送邮件的邮箱,pass一般为密码.但是QQ会不太一样.这里要授权码,授权码请在QQ邮箱中去获取,邮箱的设置,然后开启POP3/SMTP服务,就可以拿 到授权码,截图如下: image 重要提示:
此模块为纯功能,不涉及业务,在很多场景可能不能直接用于项目中进行验证码的直接使用方式,特别是验证验证码validateCode这个方法,一般说来是验证未通过直接返回我这个没问题.但是验证通过后可能会马上做一系列的业务比如注册,比如绑定邮箱等等功能,所以在些我推荐大家用云函数调用云函数的方式来使用这个模块.便于在业务逻辑处理上更灵活,官方调用方式网址为:
https://uniapp.dcloud.io/uniCloud/cf-functions?id=callbyfunction
第一次写插件.难免有不中,欢迎评论反馈

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

需要云数据库新建一张emailCode表用于存储用户发送的验证码,并且验证验证码,

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问