pk发型不乱
pk发型不乱
  • 发布:2023-11-30 10:15
  • 更新:2023-11-30 14:12
  • 阅读:305

uniIdCo.resetPwdBySms 要求输入图形验证码

分类:uniCloud

我有2个疑问:
1、
uniIdCo.resetPwdBySms
参数名 类型 必填 说明
mobile string 是 手机号
code string 是 短信验证码
password string 是 密码
captcha string 否 图形验证码

图形验证码不是非必须的么?还会返回让输入图形验证码的错误。

2、

还有就是这个短信验证码,它是根据哪一个验证码验证的。我的流程是这样的:
用户使用短信登录,登录代码是自己写的。发短信的时候会往表 opendb-sms-log写条记录。然后登录时根据这个来比对。
登录成功后,让用户设置一个密码。这时候,调用上一步的code会提示已过期。

2023-11-30 10:15 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

  1. 两小时内接口执行失败三次后可选图形验证码会变成必选,这个我们补充下文档
  2. 短信验证码是专码专用的,不同用途的图形验证码不能混用
  • pk发型不乱 (作者)

    谢谢回复。

    第一个问题,因为不知道失败了几次。查询又麻烦。所以我强制使用验证码。我在create验证码和refresh验证码的时候,都传递了参数scene:'set-pwd-by-sms',在提交uniIdCo.resetPwdBySms的时候,也提交了scene:'set-pwd-by-sms'(官方文档并没有要求在提交到这个接口时提供scene,但是验证码的使用规则上说必须要有否则验证不通过,所以我加上了。),一直提示验证码不对。我看了下提交的内容,在client_info字段中有, deviceid这一项。不过数据库中是device_uuid,不知道是这还得传递这个才行

    2023-11-30 11:15

  • pk发型不乱 (作者)

    第二个问题,那只能再发一条验证码用来修改密码了。

    2023-11-30 11:17

pk发型不乱

pk发型不乱 (作者)

图形验证码 是相同用途的。我设置了场景scene
短信验证码也是只能用一次吗?

pk发型不乱

pk发型不乱 (作者)

我在登录模块测试了一下:
获取图形验证码传递有scene是

uniIdCo.createCaptcha({  
                scene:'login-by-sms'  
            }).then(res =>{  
                this.verifycodeimg = res.captchaBase64  
            }).catch(e =>{  

            })

然后,输入验证码,点发送短信,代码如下:

uniIdCo.sendSmsCode({  
                    mobile:that.mobile.trim(),  
                    captcha: that.verifycode,  
                    scene:'login-by-sms'  
                })

一直就提示验证码错误。是不是传递的参数少了什么?

pk发型不乱

pk发型不乱 (作者)

uniIdCo.sendSmsCode({
13999999999,
5d5d,
'login-by-sms'
})
不要键名?

pk发型不乱

pk发型不乱 (作者)

uni-id-co 云对象下面的module下的verify下的send-sms-code.js的第40行,调用验证图形验证码的时候,代码是这样的:
await verifyCaptcha.call(this, {
scene: 'send-sms-code',
captcha
})

把场景值写死了。这是一个bug吧。
应该把'send-sms-code'改成scene。改完后就成功了。当然还得配置configcenter下的uni-id下的config.json。service=>sms=>
name
codeExpiresIn
smsSecret
smsKey
scene=>login-by-sms=>templateId
codeExpiresIn

要回复问题请先登录注册