详解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 相关文章推荐
ASP小贴士/ASP Tips javascript tips可以当桌面
Dec 10 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
angularJS提交表单(form)
Feb 09 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
Aug 05 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
jsonp跨域获取数据的基础教程
Jul 01 Javascript
JS的Ajax与后端交互数据的实例
Aug 08 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 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
PHP 木马攻击防御技巧
2009/06/13 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
javascript高亮效果的二种实现方法
2008/09/14 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
企业标语口号
2014/06/10 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
写给老师的感谢信
2015/01/20 职场文书
汉字听写大会观后感
2015/06/12 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL