更新记录

1.0.0(2025-10-03)

专为 uniapp 开发的登录插件,涵盖手机号验证码弹窗与二维码登录两大核心功能。手机号输入后点击即发验证码,弹窗交互流畅;扫码登录功能适配常见场景,提升用户体验。插件兼容性强,集成步骤简单,帮助开发者高效实现登录功能,减少开发成本。


平台兼容性

uni-app(4.04)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
-
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟

其他

多语言 暗黑模式 宽屏模式
×

zmt-login介绍

手机号码+验证码+二维码扫码登录,纯uniapp开发,支持vue3,直接调用,无需引入和安装。

调用方式

<zmt-login @close="updateLoginShow" :show="loginShow"></zmt-login>

参数说明

参数 类型 默认值 说明
show bool false 是否显示弹窗,false:不显示,true:显示
qrcode string https://mp-ce722b81-fb70-438b-90d2-97b9b3a6240f.cdn.bspapp.com/images/weixinerweima.jpg 登录二维码

方法说明

方法 默认值 说明
@close null 关闭弹窗时的回调

特殊说明

登录弹窗牵扯到登录方面的逻辑,现说明如下:

发送验证码逻辑

    、、、javascript
    /**
     * 发送手机验证码
     */
    sendVerificationCode() {
        // 验证手机号格式
        if (!this.isValidPhoneNumber(this.phoneNumber)) {
            this.errorMessage = '请输入正确手机号码';
            this.focusField = 'phoneNumber';
            return;
        }

        this.errorMessage = '';
        this.focusField = null;

        // 显示加载中
        uni.showLoading({ title: '发送中···' });

        // 生成随机验证码
        const code = parseInt(Math.random() * 999999);
        console.log('code',code);
        this.generatedCode = code;

        // 调用云函数发送验证码
        loginService.sendSms(this.phoneNumber, code)
            .then(() => {
                uni.hideLoading();
                this.startCountdown();
            })
            .catch(() => {
                uni.hideLoading();
                uni.showToast({
                    title: '发送过于频繁,请稍后再试!',
                    duration: 2000,
                    icon: 'none'
                });
            });
    }

发送验证码云函数说明

、、、javascript

/**
 * 发送手机验证码
 * @param {string} tel 要发送的手机号码
 * @returns {sting} 发送的随机验证码
 */

 async sendSms(tel,code) {
    // 参数校验,如无参数则不需要
    if (!tel) {
        return {
            errCode: 'PARAM_IS_NULL',
            errMsg: '参数不能为空'
        }
    }

    // 业务逻辑
    const res = await uniCloud.sendSms({
          appid: '__UNI__0CFD2F7',
          phone: tel,
          smsKey:'976dce0a3dadb0c58fa62de*****',
          smsSecret:'ec734e60644e2fb7df6f******',
          templateId: '1869**', // 请替换为自己申请的模板id
          data: {
            code: code,
            expMinute: '3',
          }
        })
    // 返回结果
    return {
        code:200,
        message:'发送成功',
        result:res
    }
}

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。