怎样实现短信验证优化

时尚美容作者 / 月后网 / 2026-04-28 05:38
"
关于怎样实现短信验证优化的讨论正在各大平台持续发酵,我们精心筛选了最新资讯,希望能为您带来实质性的帮助。 这次给大家带来

关于怎样实现短信验证优化的讨论正在各大平台持续发酵,我们精心筛选了最新资讯,希望能为您带来实质性的帮助。

这次给大家带来怎样实现短信验证优化,实现短信验证优化的注意事项有哪些,下面就是实战案例,一起来看一下。

平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,

1. 当点击完按钮时,倒计时还没到60s过完时,刷新浏览器,验证码按钮又可以重新点击

2.当点击按钮倒计时开始,例如在50s的时候我关闭了浏览器,过了5s后,我在打开,此时时间倒计时的时间应该是45s左右,但是当重新打开浏览器的时候,按钮又可以重新点击了

为了解决上面的两个问题,就需要把时间都写到localstorage里面去,当打开页面的时候,就去localstorage里面去取,我这里就贴上我的解决方法,因为前几天有个vue的项目用到该方法,所以我这里就写个vue的方法出来吧

组件里面的html代码:

<p @click="getCode">

<button v-if="flag">获取短信</button>

<button v-if="!flag">剩余{{second}}s</button>

</p>重点来啦

在data里面定义几个需要用到的变量:

second: 60,

flag: true,

timer: null // 该变量是用来记录定时器的,防止点击的时候触发多个setInterval获取短信验证的方法:

getCode() {

let that = this;

if (that.flag) {

that.flag = false;

let interval = window.setInterval(function() {

that.setStorage(that.second);

if (that.second-- <= 0) {

that.second = 60;

that.flag = true;

window.clearInterval(interval);

}

}, 1000);

}

}写入和读取localstorage:

setStorage(parm) {

localStorage.setItem("dalay", parm);

localStorage.setItem("_time", new Date().getTime());

},

getStorage() {

let localDelay = {};

localDelay.delay = localStorage.getItem("dalay");

localDelay.sec = localStorage.getItem("_time");

return localDelay;

}防止页面刷新是验证码失效:

judgeCode() {

let that = this;

let localDelay = that.getStorage();

let secTime = parseInt(

(new Date().getTime() - localDelay.sec) / 1000

);

console.log(localDelay);

if (secTime > localDelay.delay) {

that.flag = true;

console.log("已过期");

} else {

that.flag = false;

let _delay = localDelay.delay - secTime;

that.second = _delay;

that.timer = setInterval(function() {

if (_delay > 1) {

_delay--;

that.setStorage(_delay);

that.second = _delay;

that.flag = false;

} else {

// 此处赋值时为了让浏览器打开的时候,直接就显示剩余的时间

that.flag = true;

window.clearInterval(that.timer);

}

}, 1000);

}

}相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

关于怎样实现短信验证优化的探讨就到这里,您是否还有其他想了解的内容?欢迎在评论区留言告诉我们,同时别忘了点击关注哦!

分享到
声明:本文为用户投稿或编译自英文资料,不代表本站观点和立场,转载时请务必注明文章作者和来源,不尊重原创的行为将受到本站的追责;转载稿件或作者投稿可能会经编辑修改或者补充,有异议可投诉至本站。

热文导读