Vue项目:如何实现短信验证码登录?

本文详细介绍了如何在Vue.js项目中通过axios与网建短信通平台集成,实现点击获取验证码功能。首先注册并获取平台的用户名、安全密钥和短信签名,然后在项目中安装axios并配置跨域。接着在登陆页面实现点击事件,生成六位数字验证码,并通过axios发送短信。文章提供了完整的代码示例,展示了从生成验证码到发送短信的完整流程。
摘要由CSDN通过智能技术生成

1.选择一个短信平台,这里选择网建短信通,在该平台进行注册。
http://sms.webchinese.cn/index.shtml
2.在该平台进行登录,点开接口设置功能可以看到用户名,安全密钥以及短信签名,如果发送的短信内容是验证码的话,最好加上短信签名,如在短信签名输入框中写:安全公司

在这里插入图片描述
在这里插入图片描述
3.在项目中进行功能的实现
Step1:安装axios依赖
方法:
1.在package.json中的dependencies中添加"axios": "^0.21.1",
2.在终端命令行中输入npm install,进行安装

Step2:在vue.config.js中配置跨域

devServer: {
    proxy: {
      '/note': {
        target: 'http://utf8.api.smschinese.cn/',
        changeOrigin: true,
        pathRewrite: {
          '^/note': ''
        }
      }
    }
  },

tips:此处target是短信网站的url,采用utf-8编码,可以在该网站更换编码方式

Step3:在登陆页面实现功能
在本项目中要实现点击获取验证码的链接,就能收到验证码短信

<el-link class="get-code-link" type="primary" @click="createCodeAndSend">获取验证码</el-link>

      // 生成六位的数字验证码并发送短信
      createCodeAndSend() {
        if (this.loginForm.phone != null) {
          // this.$refs.loginFormRef.validate(async valid => {
          //   if (!valid) return
            // 生成六位数字验证码
            var codeLength = 6
            var createPhoneCode = ''
            // foreach循环,六次
            for (var i = 0; i < codeLength; i++) {
              var index = Math.floor(Math.random() * (9))
              index = index.toString()
              createPhoneCode += index
            }

            // 发送验证码短信给用户
            const text = '【验证码】' + createPhoneCode + '\n【您正在使用登陆功能,该验证码仅用于身份验证,在五分钟之内有效,请勿泄露给其他人使用。】' 
            const param = new URLSearchParams()
            param.append('Uid', 之前登录后看到的用户名(字符串))
            param.append('Key', 之前登录后看到的安全密钥(字符串))
            param.append('smsMob', this.loginForm.phone)
            param.append('smsText', text)
            this.$http.post('/note/', param, {
              headers: {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
              }
            }).then(function (response) {
              console.log(response)
            })
          // })
        } else {
          this.$message.warning('清输入手机号!')
        }
      }

实现效果:
在这里插入图片描述
点击获取验证码后收到短信
在这里插入图片描述


                                           感谢收阅
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值