详解vue后台系统登录态管理


Posted in Javascript onApril 02, 2019

技术应用
js-cookie + vuex + localStorage 做数据持久化

js-cookie

npm i js-cookie --save

详解vue后台系统登录态管理

vuex

 详解vue后台系统登录态管理

user.js

import { login, logout } from '@/servers/login'
	import { getToken, setToken, removeToken } from '@/utils/auth' // 这是上面的js-cookie暴露出来的方法
	const user = {
  state: {
    userInfo: "",
    token: getToken(),
    roles: []
  },
  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    }
  },
  actions: {
    // 用户名登录
    login({ commit }, userInfo) {
      const userName = userInfo.userName.trim()
      return new Promise((resolve, reject) => {
        login({userName: userName, password: userInfo.password}).then(res 						=> {
          if (res.status.statusCode === 0) {
            const data = res.result
            commit('SET_TOKEN', data.token)
            setToken(data.token)
            localStorage.setItem('userInfo', JSON.stringify(data))
            resolve()
          }
          else {
            resolve(res.status.statusReason)
          }
          
        })
        .catch(error => {
          reject(error)
        })
      })
    },
    // 登出
    logout({ commit }, userId ) {
      return new Promise((resolve, reject) => {
        logout({id: userId}).then((res) => {
          if (res.status.statusCode === 0) {
            commit('SET_TOKEN', '')
            removeToken()
            localStorage.clear()
            resolve()
          }
          else {
            resolve(res.status.statusReason)
          }
        })
        .catch(error => {
          reject(error)
        })
      })
    }
  }
}
export default user

getter.js

const getters = {
  userInfo: state => state.user.userInfo
}

export default getters

store.js

import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
import getters from './getters'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    user
  },
  getters
})

export default store

以上就是整个登录态的设定

在项目中的使用,如下
点击登录后

this.$store.dispatch('login', {userName: userName, password: password}).then((res) => {
		console.log(res)
		if(!res) {
			//	登录成功后的逻辑
		} else {
			//	登录失败后的逻辑
		}
	})

点击退出后

this.$store.dispatch('logout', userId).then((res) => {
	   if (!res) {
	    //	退出成功的逻辑
	   }
	   else {
	    //	退出失败的逻辑
	   }
	 })

需要特别注意的一点,vuex在页面刷新之后会消失掉.

以上所述是小编给大家介绍的vue后台系统登录管理详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery中的.bind()、.live()和.delegate()之间区别分析
Jun 08 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
详解React native全局变量的使用(跨组件的通信)
Sep 07 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
js键盘事件实现人物的行走
Jan 17 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 #Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 #Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 #Javascript
基于Vue插入视频的2种方法小结
Apr 02 #Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 #Javascript
小程序实现自定义导航栏适配完美版
Apr 02 #Javascript
es6 symbol的实现方法示例
Apr 02 #Javascript
You might like
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php 地区分类排序算法
2013/07/01 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python的pip安装以及使用教程
2018/09/18 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
党员的自我评价范文
2014/01/02 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
中国梦口号
2014/06/13 职场文书
小学运动会报道稿
2014/10/04 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
2014年村委会工作总结
2014/11/24 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android