uni-app 验证码发送能力uniCloud.sendSms不提供smsKey和smsSecret后无法使用

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app 验证码发送能力uniCloud.sendSms不提供smsKey和smsSecret后无法使用

产品分类:uniCloud/App

App下载地址或H5网址: https://static-mp-76f6500b-d2d6-4ca0-8bb1-f5fadc40d4ba.next.bspapp.com/#/

示例代码:

{
  "service": {
    "sms": {
      "name": "验证码",
      "codeExpiresIn": 180,
      "scene": {
        "login-by-sms": {
          "templateId": "31240",
          "codeExpiresIn": 240
        },
        "bind-mobile-by-sms": {
          "templateId": "31240",
          "codeExpiresIn": 240
        }
      }
    },
    "univerify": {
      "appid": "",
      "apiKey": "",
      "apiSecret": ""
    }
  }
}
await uniCloud.sendSms({
  // smsKey: '',
  // smsSecret: '',
  appid: '__UNI__87BE373',
  phone: mobile,
  templateId,
  data: {
    name: smsConfig.name,
    code,
    action,
    expMinute: '' + Math.round(codeExpiresIn / 60)
  }
})

操作步骤:

https://static-mp-76f6500b-d2d6-4ca0-8bb1-f5fadc40d4ba.next.bspapp.com/#/uni_modules/uni-id-pages/pages/login/login-withoutpwd?type=smsCode

尝试验证码登录

预期结果:

可以发送验证码

实际结果:

验证码发送失败

bug描述:

使用了官方模版starter,调用短信功能,不填smsKey,smsSecret报错,填空字符串显示未开通,hbuilder版本3.98(前两天刚升级的)

bug1 bug2 bug3 bug4 bug5


7 回复

更新uni-id-pages到1.1.17版本


更新:打包出来的东西可以使用这个能力,但是在hbuilder里面,不管切线上环境还是线下环境都无法使用,怀疑普通更新的hubuilder存在问题

又不行了,奇奇怪怪的

帖子里贴的是临时地址,应该会有访问次数限制,不能用了可以用这个 https://cit3w.cn/#/uni_modules/uni-id-pages/pages/login/login-withoutpwd?type=smsCode

你解决了吗?我使用vk也是这个问题

看下官方回复呢,我是升级了就好了

uni-app 中使用 uniCloud.sendSms 发送短信验证码时,smsKeysmsSecret 是必需的参数,用于验证和授权短信发送服务。如果未提供这些参数,uniCloud.sendSms 将无法正常工作。

解决方法

  1. 获取 smsKeysmsSecret

    • 你需要从短信服务提供商(如阿里云、腾讯云等)获取 smsKeysmsSecret。这些信息通常在你的短信服务控制台中可以找到。
  2. 配置 uniCloud

    • uniCloud 的云函数中,配置 smsKeysmsSecret。你可以在云函数的 config.json 文件中添加这些配置,或者在代码中直接使用。
  3. 调用 uniCloud.sendSms

    • 在云函数中调用 uniCloud.sendSms 时,确保传入正确的 smsKeysmsSecret

示例代码

以下是一个简单的示例,展示如何在 uniCloud 云函数中发送短信验证码:

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

exports.main = async (event, context) => {
  const { phoneNumber, code } = event

  try {
    const result = await cloud.sendSms({
      smsKey: 'your_sms_key', // 替换为你的 smsKey
      smsSecret: 'your_sms_secret', // 替换为你的 smsSecret
      phoneNumber: phoneNumber,
      templateId: 'your_template_id', // 替换为你的短信模板ID
      params: [code] // 替换为你的短信模板参数
    })

    return {
      code: 0,
      message: '短信发送成功',
      data: result
    }
  } catch (error) {
    return {
      code: -1,
      message: '短信发送失败',
      error: error
    }
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!