当前位置 主页 > 服务器问题 > Linux/apache问题 >
无论是移动端还是pc端登录或者注册界面都会见到手机验证码登录这个功能,输入手机号,得到验证码,最后先服务器发送请求,保存登录的信息,一个必不可少的功能
思路
1,先判断手机号和验证是否为空,
2,点击发送验证码,得到验证码
3,输入的验证码是否为空和是否正确,
4,最后向服务发送请求
界面展示
1.准备工作
这个会对input进行封装处理
<template> <div class="text_group"> <div class="input_group" :class="{'is-invalid': error}"> <!-- 输入框 --> <input :type="type" :placeholder="placeholder" :value="value" :name="name" @input="$emit('input',$event.target.value)" > <!-- 输入框后面的内容 --> <button v-if="btnTitle" @click="$emit('btnClick')" :disabled="disabled">{{btnTitle}}</button> </div> <!-- 验证提示 --> <div v-if="error" class="invalid-feedback">{{error}}</div> </div> </template> <script> export default { name:"inputGroup", props:{ type: { type: String, default: "text" }, placeholder:String, value:String, name:String, disabled:Boolean, btnTitle:String, //input框中的文字 error:String //验证不正确提示 } } </script>
input组件封装完之后在我们这个login组件中引入并注册
import InputGroup from '../components/InputGroup'引入封装的组件
最后在components注册
data() { return { phone:"", //手机号 verifyCode:"", //验证码 btnTitle:"获取验证码", disabled:false, //是否可点击 errors:{}, //验证提示信息 } } <template> <div class="login"> <!-- 手机号 --> <InputGroup type="number" placeholder="手机号" v-model="phone" :btnTitle="btnTitle" :disabled="disabled" :error="errors.phone" @btnClick="getVerifyCode" /> <!-- 输入验证码 --> <InputGroup type="number" v-model="verifyCode" placeholder="验证码" :error="errors.code" /> <!-- 登录按钮 --> <div class="login_btn"> <button @click="handleLogin" :disabled="isClick">登录</button> </div> </div> </template>
2.判断手机号是否正确和合法
(1)点击验证码发送验证的时候,必须符合手机号正确和手机号码不能为空,短信发送服务用的是《聚合数据》,申请可以免费调用10次
getVerifyCode(){ //获取验证码 if(this.validatePhone()) { this.validateBtn() //发送网络请求 this.$axios.post('/api/posts/sms_send',{<br> //注册聚合数据找到短信api服务,申请会得到两个tpl_id和key值,然后填入相对应的就行,具体还是和你门后端进行沟通 tpl_id: "", key: "", phone:this.phone }).then(res => { console.log(res) }) }<br>},
2.1点击发送验证码的时候判断是否合法