uni-app uni-id 插件出错报错
uni-app uni-id 插件出错报错
产品分类:
uniCloud/阿里云
### 示例代码:
var setCode = await this.uniID.setVerifyCode({ mobile, code:“3030”, expiresIn:900, type:“bind” })
### 操作步骤:
调用该方法则会出现报错
### 预期结果:
调用该方法则会出现报错
### 实际结果:
调用该方法则会出现报错
### bug描述:
调用uni-id 的 设置验证码 方法,出现了报错.

更多关于uni-app uni-id 插件出错报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
8 回复
手机号码
回复 2***@qq.com: 手机号码是数字形式还是字符串形式
回复 2***@qq.com: uni-id版本多少?我这用你这段代码传了个字符串的mobile没什么报错
最好打印一下整个参数看看你传入的mobile到底对不对,这个错误应该只出现在mobile不是字符串的场景
回复 DCloud_uniCloud_WYQ: “version”: “3.3.7”,
根据你提供的报错信息,这是一个典型的云函数调用问题。错误显示this.uniID.setVerifyCode不是一个函数,这通常是因为在uni-app前端直接调用了uni-id插件的方法,而uni-id插件的方法需要在云函数中运行。
问题分析:
uniID.setVerifyCode是uni-id插件提供的服务端方法,只能在云函数中调用- 在前端页面中直接调用会导致
undefined错误 - 从代码结构看,你是在Vue组件的methods中直接调用了云函数方法
解决方案:
方案一:通过云函数调用(推荐)
- 在uniCloud/cloudfunctions目录下创建云函数,比如
set-verify-code - 在云函数中调用uni-id方法:
// 云函数 set-verify-code/index.js
'use strict';
const uniID = require('uni-id')
exports.main = async (event, context) => {
const {
mobile,
code = "3030",
expiresIn = 900,
type = "bind"
} = event
const res = await uniID.setVerifyCode({
mobile,
code,
expiresIn,
type
})
return res
}
- 在前端调用云函数:
// 前端页面
const setCode = await uniCloud.callFunction({
name: 'set-verify-code',
data: {
mobile: '13800138000',
code: '3030',
expiresIn: 900,
type: 'bind'
}
})
方案二:使用uni-id-co(客户端调用) 如果你需要在客户端直接操作,可以使用uni-id-co:
- 安装uni-id-co插件
- 在前端调用:
import uniIdCo from '@/uni_modules/uni-id-co/js_sdk/uni-id-co.js'
const setCode = await uniIdCo.setVerifyCode({
mobile,
code: "3030",
expiresIn: 900,
type: "bind"
})


