动态验证码问题

现在,我们的大多数网页或者APP一般都有用户登录功能,并且动态验证码也是必不可少的,那么它如何实现呢,看代码

<template>
  <el-form :model="user" :rules="rules" ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-container">
    <header class="header">
      <img src="../../assets/logo.png" alt="">
    </header>
    <h3 class="title">系统登录</h3>
    <el-form-item prop="username">
      <el-input type="text" v-model="user.username" auto-complete="off" placeholder="账号"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="user.password" auto-complete="off" placeholder="密码"></el-input>
    </el-form-item>
    <el-form-item prop="checkcode">
      <el-col :span="16">
        <el-input type="text" v-model="user.checkcode" auto-complete="off" placeholder="验证码"></el-input>
      </el-col>
      <el-col :span="8" class="text-right">
        <img @click="changeImg" :src="codeUrl" alt="">
        //这里是出现验证图片的地方
      </el-col>
    </el-form-item>
   <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox>-->
    <el-form-item >
      <el-button type="primary"  @click="handleSubmit" :loading="logining">登录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
  import {checkCodeUrl,login} from '../../api/api'
  export default {
    data() {
      return {
        logining: false,
        user: {
          username: '',
          password: '',
          checkcode:''
        },
        rules: {
          username: [
            { required: true, message: '请输入账号', trigger: 'blur' },
          ],
          password: [
            { required: true, message: '请输入密码', trigger: 'blur' },
          ],
          checkcode:[
            {required:true,message:'请输入验证码',trigger:'blur'}
          ],
        },
        codeUrl:checkCodeUrl,
        //这里是验证码图片的url地址
        checked: true
      };
    },
    methods: {
      handleSubmit(ev) {
        var _this = this;
        this.$refs.loginForm.validate(function(valid){
          if (valid) {
            _this.logining = true;
            login(_this.user).then(function (res) {
              _this.logining=false;
              if(res.data&&res.data.code==1){
                _this.$store.commit('login',true);
                _this.$router.push('/explain')
              }else{
                _this.$message(
                  {message: res.data.msg,
                    type: 'error'});
              }

            }).catch(function () {
              _this.logining=false;
              _this.$message(
                {message: '登录失败',
                type: 'error'});
            })
          }else{
            _this.$message(
              {message: '验证失败',
                type: 'error'});
            return false;
          }
      });
      },
      //这里是处理当我们点击时改变验证码的数字或字母
      changeImg(){
        this.codeUrl=checkCodeUrl+'?'+Date.now();
      }
    }
  }

</script>
<style lang="less">
  @import "../../style/login.less";
</style>

关于上面的checkCodeUrl在哪里呢,它是后台给我们的验证码图片的url,例如
let base = ‘http://192.168.1.110:8081/hhdj‘;

export default {
//验证码
checkCode:${base}/validatecode.jsp,
以上就是我们如何设置验证码图片的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值