美文网首页工作总结
vue项目 实现6个小时之内免登录

vue项目 实现6个小时之内免登录

作者: 轩轩小王子 | 来源:发表于2019-10-31 17:56 被阅读0次

第一步:需要在登录成功之后设置6个小时的过期时间

//登录
        login(){
            if(this.phoneNum == "" ||!isvalidPhone(this.phoneNum)){
                return Toast('请填写正确的手机号'); //Toast 引入了mint-ui
            }
            if(this.vCode == ""){
                return Toast('请填写验证码');
            }
            let reqParams = {xxx}
            this.btnIsDisabled = true; //按钮防止重复点击
            this.$post('xxxx',reqParams).then(res=>{
                setExpire('userId',res.userId,6*60*60*1000);
                setExpire('userToken',res.userToken,6*60*60*1000);
                this.$router.push({
                            path: '/home'
                 }
                 this.btnIsDisabled = false;
            }).catch(err=>{
                    this.btnIsDisabled = false;
            })
        }
//免登录
        freeLogin(){
            let  userId = getExpire('userId');
            //在有效时间内
            if(userId){
                this.$router.push({
                       path: '/home'
                })
            }
        }
beforeRouteEnter(to,from,next){
        next(vm=>{
            if(!from.name){ //直接通过链接进来的,避免   正常通过登录页跳转到第二个页面 点击返回又会再跳到第二个页面的情况
                   vm.freeLogin();
            }
        });
    }

附:utils.js中 setExpire、getExpire

export function setExpire(key,value, expire){
    let obj = {
        data: value,
        time: Date.now(),
        expire: expire
    };
    localStorage.setItem(key, JSON.stringify(obj));
}
export function getExpire(key){
    let val = localStorage.getItem(key);
    if (!val) {
        return val;
    }
    val = JSON.parse(val);
    if (Date.now() - val.time > val.expire) {
        localStorage.removeItem(key);
        return null;
    }
    return val.data;
}

相关文章

  • vue项目 实现6个小时之内免登录

    第一步:需要在登录成功之后设置6个小时的过期时间 附:utils.js中 setExpire、getExpire

  • 实现Vue+Element-ui登录

    在上一章创建Vue项目之后,实现登录功能。 完成之后,整个项目的大致结构如下: 1.首先修改入口页面App.vue...

  • Vue中的验证登录状态

    Vue项目中实现用户登录及token验证 先说一下我的实现步骤: 使用easy-mock新建登录接口,模拟用户数据...

  • SSH免密登录

    免密登录的原理 首先免密登录要从SSH的流程说起,最常见的是密码登录,流程如下 免密登录要实现的是客户端向服务端发...

  • vue-cli3.0 Typescript 项目集成环信WebI

    项目背景 环信webim 官方没有vue版本的,自己就根据sdk重写了个vue版本的,只实现了基础的 登录 群组功...

  • 2019-05-27 第十周作业

    1、实现sshd免密登录 2、编译安装dropbear实现SSH登录 3、实现单个用户及用户组使用sudo执行所有...

  • vue项目实现登录携带token

    1.用户第一次登录,调用后端登录接口,发送用户名和密码2.后端验证用户名和密码是否正确,成功则返回token,3....

  • SSH免密登录一步搞定

    SSH免密登录 服务器A实现免密登录服务器B。(基于Linux服务器) 实现过程 一、服务器A公钥的生成 服务器A...

  • ssh 免密登录,git免密登录

    项目在使用bitbucket,每次fetch、pull都提示输入密码,今天总结一下我是如何实现免密登录和操作的。我...

  • vue登录页

    vue项目实现用户登录 以及携带token 调取登录接口 (首先明确一下要做到事情)在前后端完全分离的情况下,Vu...

网友评论

    本文标题:vue项目 实现6个小时之内免登录

    本文链接:https://www.haomeiwen.com/subject/tfwtbctx.html