vue实现短信验证码登录

无论是移动端还是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:{}, //验证提示信息
   }
 }


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<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次


1

getVerifyCode(){


1

2

3

4

5

6

7

8

9

10

11

12

//获取验证码

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点击发送验证码的时候判断是否合法


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

validatePhone(){

   //判断输入的手机号是否合法

   if(!this.phone) {

    this.errors = {

    phone:"手机号码不能为空"

   }

    // return false

   else if(!/^1[345678]\d{9}$/.test(this.phone)) {

    this.errors = {

    phone:"请输入正确是手机号"

   }

    // return false

   else {

    this.errors ={}

    return true

   }

},             

2.2点击验证码发送倒计时

validateBtn(){
   //倒计时
   let time = 60;
   let timer = setInterval(() => {
   if(time == 0) {
    clearInterval(timer);
    this.disabled = false;
    this.btnTitle = "获取验证码";
   } else {
    this.btnTitle =time + ‘秒后重试‘;
    this.disabled = true;
    time--
   }
  },1000)
},

3.点击登录实现

  3.1点击登录之前手机已经发送验证密,并且手机上以及获取到正确的验证码,登录之前需要判断,手机号和验证码都不能为空,所以在计算属性判断是否两个都为空,如果都不为空的话,可以点击按钮,否则不能点击按钮


1

2

3

4

5

6

7

8

9

10

11

computed: {

    //手机号和验证码都不能为空

    isClick(){

       if(!this.phone || !this.verifyCode) {

        return true

       else {

        return false

       }

                

    }

},

  3.2点击登录发送请求,得到的并存储到localStorage里面,最后跳转到登录页面


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

handleLogin() {

    //点击发送

    this.errors = {};

    this.$axios.post(‘/api/posts/sms_back‘,{

        phone:this.phone,

        code:this.verifyCode

    }).then(res => {

        console.log(res);

        localStorage.setItem(‘ele_login‘,true)

        this.$router.push(‘/‘)

    }).catch(error =>{

        //返回错误信息

        this.errors ={

        code:error.response.data.msg

    }

   })

}

  以上都是vue实现手机号码登录的整个流程,如果喜欢可以多多关注一下

原文地址:https://www.cnblogs.com/reeber/p/11267029.html

时间: 2024-08-04 08:56:43

vue实现短信验证码登录的相关文章

短信验证码登录思路

短信验证码登录 public class ValidateCode { private String code; //有效期 private LocalDateTime expireTime; public ValidateCode(String code, int expireTime) { this.code = code; this.expireTime = LocalDateTime.now().plusSeconds(expireTime); } public String getCo

项目总结手机号+短信验证码登录

首先,需要一个电话号码,目前很多账户都是将账户名设置成手机号,然后点击按钮获取手机验证码. 其次,你需要后台给你手机短信的验证接口,各个公司用的不一样,这个身为前端,不需要你来考虑,你只要让你后台给你写好接口,你直接调用就好了. activity_login.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

手机号+短信验证码登录注意

首先我们 说下成员变量和局部变量 简单介绍下 成员变量 :定义在class里面  方法外边 局部变量: 定义在方法里面 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程. 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝(即便是同一个对象中的方法的局部变量,也会对每一个线程有一个拷贝),一个线程对该局部变量的改变不会影响到其他线程 如果你定义了两个成员变量分别来存储手机号和验证码

JAVA利用第三方平台发送短信验证码。

前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

发送短信验证码和邮箱验证码—Java实现

短信验证码 短信验证码都是调用一些接口来进行短信的发送,短信验证码在登录.注册等操作中使用的最广泛,本文这一节演示如何使用Java制作一个简单的短信验证码登录. 我这里演示使用的是聚合数据的短信接口(并非广告),因为聚合数据的接口调用比较方便和简单,所以首先得先去聚合数据里申请一个短信接口API: 申请时会需要你进行实名认证,如果你不想认证的话跳过认证也是可以的. 申请完短信API进入以下界面后点击"模板": 需要先申请一个短信模板,根据自己的需求定义这个模板内容(定义前先阅读此页面下

vue,一路走来(14)--短信验证码框的实现(类似支付密码框)

由于项目的扩展,新增了很多功能,今天谈一下短信验证码框的实现. 思路:每个小方框其实就是单独的每一个input标签(叫假input标签),每个长度为1,然后上面再写一个大的input标签(叫真实input标签),提高层级定位在上方,最大长度为6,然后将上方真实input标签的值传给每一个单独的假input标签. <div class="phonenum-show"> <div class="getback-title">收回剩余礼金 <

thinkphp集成系列之短信验证码、订单通知

现在这个短信通知泛滥的年代:应用如果没有个短信注册:你都不敢说你是搞开发的: 这个验证码搞起来是不难的:但是如果刚接触也是有点不知从哪下手的迷茫: 先讲下概念: 要想发送验证码:需要至少三项:appid.key.模板id: appid.和key比如较容易理解:各种第三方平台都会提供的:可能叫法不一样: 模板id就是指的短信的内容:例如[淘宝]验证码是192612,请您在5分钟内输入: 这就是一个模板:我们发短信的时候只能改变192612.和5这两个数字:其他是固定的: 因为政策的问题:模板需要申

程序君带你畅聊发送短信验证码

现在不管是网站,还是app等互联网和移动互联网产品,绝大部分注册都是直接用手机号注册登录的,方式就是给手机发送短信验证码,然后把验证码填入,后台程序去匹配判断用户填入的验证码和发送的是否一致. 我最近做的好几个项目都用到了发送短信验证码的这个第三方接口,其实这个发送验证码的原理很简单,实现也很简单. 如下三个图,是我做的其中一个项目的相关效果截图: 我用的比较多的第三方短信接口是容联-云通讯的(http://www.yuntongxun.com/),它的API挺强大的,也挺稳定的,使用也不难,有

短信验证码是什么?

随着互联网与手机的广泛应用,验证码这玩意儿已经和你我的生活形影相随,那么你能说的清楚什么是验证码吗?验证码是一种区分用户是计算机和人的公共全自动程序.网站发到你手机上的短信里面有一串数字那就是短信验证码一般是注册或者绑定手机用的. 短信验证码就是通过发送验证码到手机上,大型网站尤其是购物网站,都提供手机短信验证码功能,短信验证码平台保证用户的购物安全,验证用户的正确性.短信验证码是最有效的验证码系统,它是一种触发类短信应用.如你在购物时,登录成功后,需要要求你绑定手机号码,点击获取验证码这时会给