详解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 相关文章推荐
一些经常会用到的Javascript检测函数
May 31 Javascript
jquery复选框全选/取消示例
Dec 30 Javascript
javascript对JSON数据排序的3个例子
Apr 12 Javascript
理解javascript回调函数
Dec 28 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
JavaScript中获取HTML元素值的三种方法
Jun 20 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
PHPMailer 中文使用说明小结
2010/01/22 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
拖动一个HTML元素
2006/12/22 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
Python中Continue语句的用法的举例详解
2015/05/14 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python统计字符的个数代码实例
2020/02/07 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
《雕塑之美》教学反思
2014/04/24 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书