忘记密码(通过手机验证码找回设置)自己写

Posted ll15888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了忘记密码(通过手机验证码找回设置)自己写相关的知识,希望对你有一定的参考价值。

<template>
     <div>
        <h3  class="pad-all">找回密码</h3>
        <el-form :model="modeflyForm" :rules="rules" ref="modeflyForm" class="pad-all" >
            <el-form-item label="手机号" prop="tel" :label-width="formLabelWidth">
                <el-input v-model="modeflyForm.tel" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="用户名" prop="user" :label-width="formLabelWidth">
                <el-input v-model="modeflyForm.user" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="新密码" prop="newPass" :label-width="formLabelWidth">
                <el-input type="password" v-model="modeflyForm.newPass" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="验证码" prop="verifly" :label-width="formLabelWidth">
                <el-input v-model="modeflyForm.verifly" autocomplete="off" class="verifly"></el-input>
                <el-button class="getVerifly">
                    <span v-show="sendAuthCode" class="auth_text auth_text_blue" @click="checkTel">获取验证码</span>
                    <span v-show="!sendAuthCode" class="auth_text"> 
                        <span class="auth_text_blue">auth_time </span> 
                        秒之后重新发送验证码
                    </span> 
                </el-button>
            </el-form-item>
        </el-form>
        <!-- 弹框footer部分 -->
        <div slot="footer" class="dialog-footer" style=‘text-align:center;padding:50px 0;‘>
            <el-button type="primary" @click="submit" style=‘margin-right:30px;‘>提 交</el-button>
            <el-button @click="closeBox" style=‘margin-left:30px;‘>取 消</el-button>
        </div>
    </div>
</template>
<script>
export default 
    data () 
        return 
            formLabelWidth:‘120px‘,
            logining: false,
            sendAuthCode:true,   //布尔值,通过v-show控制显示‘获取按钮’还是‘倒计时’ 
            auth_time: 0,        //倒计时 计数器
            verification:"",     //绑定输入验证码框框
            modeflyForm: 
                tel: ‘‘,
                user: ‘‘,
                newPass: ‘‘,
                verifly:‘‘
            ,
            rules: 
                tel: [
                     required: true, message: ‘请输入手机号‘, trigger: ‘blur‘ 
                ],
                user: [
                     required: true, message: ‘请输入用户名‘, trigger: ‘blur‘ 
                ],
                newPass: [
                     required: true, message: ‘请输入新密码‘, trigger: ‘blur‘ ,
                    validator:newPassBox,trigger:‘blur‘
                ],
                verifly: [
                     required: true, message: ‘请输入验证码‘, trigger: ‘blur‘ ,
                    validator:veriflyBox,trigger:‘blur‘
                ]
            
        
        // 设置新密码的正则
        let newPassBox = (rules,value,callback)=>
            let reg=/^[\w]6,18$/
            if(!reg.test(value))callback(new Error(‘密码格式不正确,请输入6-18位的数字或字母‘))
            else
                callback()
            
        
        // 验证码正则
        let veriflyBox = (rules,value,callback)=>
            console.log("启用正则")
            let reg=/[0-9]6/
            if(!reg.test(value))callback(new Error(‘验证码格式不正确,请输入6位的数字‘))
            else
                callback()
            
        
    ,      
    methods: 
        // 检查手机号格式
        checkTel()
            let TEL_REGEXP = /^1([38]\d|5[0-35-9]|7[3678])\d8$/
            let tel = this.modeflyForm.tel 
            if(TEL_REGEXP.test(tel))
                this.getAuthCode()
            else
                // 格式不正确
                this.$message("手机号格式不正确,请输入正确手机号")
                return true
                          
        ,
        //获取验证码
        getAuthCode() 
            // 手机号格式正确发请求
            let param = mobile: this.modeflyForm.tel, type: ‘1‘
            this.$api.sys.getSmsCode(param).then(data=> 
                console.log(data)
                this.modeflyForm.verifly = data.msCode
            )      
            //const verification =this.modeflyForm.tel;
            //获取验证码请求
            this.sendAuthCode = false;
            //设置倒计时秒
            this.auth_time = 60
            var auth_timetimer =  setInterval(()=>
                this.auth_time--
                if(this.auth_time<=0)
                    this.sendAuthCode = true
                    clearInterval(auth_timetimer)
                
            , 1000)
        ,
        submit()
            let isNull = this.modeflyForm.tel == ‘‘ || this.modeflyForm.user == ‘‘ || this.modeflyForm.newPass == ‘‘ || this.modeflyForm.verifly == ‘‘
            if(!isNull)
                //veriflyBox()
                // 后台验证修改
                // param: mobile: ‘手机号码‘, type: 类型(1:找回密码), smsCode: ‘验证码‘
                let param = mobile: this.modeflyForm.tel, type: ‘1‘, smsCode: this.modeflyForm.verifly
                this.$api.sys.checkSmsCode(param).then(data=> 
                    if(data.retCode == 0)
                        this.modoflyPass()
                       
                )
            else
                this.$message("手机号,用户名,密码,验证码不能为空!")
            
                
        ,
        modoflyPass()
            // 修改请求
            console.log(‘修改‘)
            let param = loginName:this.modeflyForm.user , password: this.modeflyForm.newPass, mobile: this.modeflyForm.tel
            this.$api.user.forgotPassword(param).then(data=> 
                console.log(data)
                if(data.retCode == 0)
                    this.$message("恭喜您。新密码设置成功!")
                else
                    this.$message("修改失败,请重试!")
                                
            )      
        ,
        closeBox()
        


  

</script>

 

以上是关于忘记密码(通过手机验证码找回设置)自己写的主要内容,如果未能解决你的问题,请参考以下文章

悦me网关忘记密码怎么办?

密码忘记了怎么找回?

苹果手机忘记密码后如何注销icluod账号?

在忘记APPLE ID密码的情况下如何删除icloud账号?

苹果admin密码忘记了怎么找回

云助理绑定手机及密码找回方法