【vue】cookie保存用户登陆信息

.html

<el-form :model="form" ref="form" :show-message="false" @submit.native.prevent="submitForm('form')" v-loading="loading">
 	<el-form-item prop="account">
     	<el-input
        	placeholder="账号"
            prefix-icon="el-icon-user"
            v-model="form.account">
        </el-input>
    </el-form-item>
    <el-form-item prop="pwd">
    	<el-input
            placeholder="密码"
            prefix-icon="el-icon-view"
            v-model="form.pwd">
        </el-input>
    </el-form-item>
    <el-form-item style="margin-bottom: 0;">
    	<el-button
        	type="primary"
            style="width: 100%"
            native-type="submit">
            登录</el-button>
    </el-form-item>
</el-form>

登录页面main.js

export default {
    name: "login",
    data() {
        return {
            form: {
                account: '',
                pwd: ''
            },
            loading:false
        };
    },
    methods: {
        submitForm(form) {
            let _vm = this;
            //判断账号密码是否为空(其他格式校验由接口返回)
            if (_vm.form.account == ""){
            	_vm.$message.error("请输入账号")
                return
            }
            if (_vm.form.pwd == ""){
                _vm.$message.error("请输入密码")
                return
            } 
            //调用接口登录
            _vm.loading = true;
            _vm.$refs[form].validate((valid) => {
                if (valid) {
                //封装的调接口方法,这里不再展示
                    wh.generalHttpRequest({
                        url: '',
                        method: 'post',
                        data:{}
                    }, (dat) => {
                        if(dat.data.status){
                            //保存用户信息
                            let userInfo = dat.data.resultData.userInfo
                            //转成字符串存储
                            if(userInfo){
                                userInfo = JSON.stringify(userInfo)
                            }
                            _vm.setCookie(userInfo,7);
                            _vm.loading = false;
                            //跳转至主页面
                            _vm.$router.push({
                                path:""
                            })
                        }else{
                           //
                        }
                    })
                } else {
                    return false
                }
            });
        },
        //设置cookie
        setCookie(jwt,userInfo,exdays) {
            let exdate=new Date();
            exdate.setTime(exdate.getTime() + 24*60*60*1000*exdays);//保存的天数
            //字符串拼接cookie
            window.document.cookie="userInfo" + "=" + userInfo + ";path=/;expires=" + exdate.toGMTString();
        },
        //清除cookie
        clearCookie(){
            this.setCookie("","",-1)
        }
    }
}

主页面获取cookie信息

//封装了一个方法,每个页面都可以调用
wh.getCookie = function (pram) {
    if (document.cookie.length > 0) {
        let arr = document.cookie.split('; ');//通过; 将数据转成数组
        for(var i=0;i<arr.length;i++){
            let index = arr[i].indexOf("=") //返回第一个“=”所在的位置
            if(arr[i].subString(0,index)==pram){
            	return arr[i].subString(index+1)
            }
        }
    }
    return ""
}

//页面中调用
    let userInfo = wh.getCookie("userInfo")
    userInfo = JSON.parse(userInfo)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值