vue使用localStorage保存登录信息 适用于移动端、PC端


Posted in Javascript onMay 27, 2019

众所周知,vue可以用来开发移动端app,可以使用hbuilder将build好的vue打包成一个移动端app,但是用过之后就会发现,使用cookies或者session保存登录的token,在手机端无法保存,每次打开app依然提示登录。那么我们可以使用localStorage来保存登录信息就可以了,具体代码如下

1、vuex stroe代码

index.js

import Vue from 'vue'
import vuex from 'vuex'
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken, setlocalStorage, getlocalStorage, removelocalStorage } from '@/utils/user'

Vue.use(vuex);

//state为访问状态对象 数字常量等
const state = {
 x:5,
 token: getlocalStorage(),
 nickname: '',
 course_id: 0,
 user_id: 0,
 group_id: 0,
 begin_group_num: 0,
 student_group: 0
};
//访问触发状态mutation是同步的
//actions是异步的
const mutations = {
 SET_TOKEN: (state, token) => {
 state.token = token
 },
 SET_NAME: (state, nickname) => {
 state.nickname = nickname
 },
};
const actions = {
 Login({ commit }, userInfo) {
 const username = userInfo.username.trim()
 return new Promise((resolve, reject) => {
 login(username, userInfo.password).then(response => {
 const data = response.data
 setlocalStorage(data.token)
 commit('SET_TOKEN', data.token)
 resolve()
 }).catch(error => {
 console.log()
 reject(error)
 })
 })
 },
 GetInfo({ commit }) {
 return new Promise((resolve, reject) => {
 getInfo().then(response => {
 const data = response.data
 console.log(data)
 commit('SET_NAME', data.nickname)
 resolve()
 }).catch(error => {
 console.log()
 })
 })
 },
 // 前端 登出
 FedLogOut({ commit }) {
 return new Promise(resolve => {
 commit('SET_TOKEN', '')
 removelocalStorage()
 resolve()
 })
 }
};

//getters 类似于生命周期里面的钩子,getters是在页面刚刚加载完毕之后马上加载,类似于生命周期里面的created
const getters = {
 // 测试getters
 x: state => state.x + 200,
};
export default new vuex.Store({
 state,
 mutations,
 getters,
 actions
})

2、localStorage 代码

user.js

import Cookies from 'js-cookie'

const TokenKey = 'MuseUi-Token'

export function getToken() {
 return Cookies.get(TokenKey)
}

export function setToken(token) {
 return Cookies.set(TokenKey, token)
}

export function removeToken() {
 return Cookies.remove(TokenKey)
}

const SessionKey = 'usertoken'
export function setlocalStorage(token) {
 return localStorage.setItem(SessionKey,token)
}

export function getlocalStorage() {
 return localStorage.getItem(SessionKey)
}

export function removelocalStorage() {
 return localStorage.setItem(SessionKey,null)
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
用js正确判断用户名cookie是否存在的方法
Jan 28 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
webpack2.0配置postcss-loader的方法
Aug 17 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
详解利用eventemitter2实现Vue组件通信
Nov 04 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
Nov 14 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 Javascript
Vue使用localStorage存储数据的方法
May 27 #Javascript
了解javascript中的Dom操作
May 27 #Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 #Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 #Javascript
深入浅出了解Node.js Streams
May 27 #Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 #Javascript
vue项目前端错误收集之sentry教程详解
May 27 #Javascript
You might like
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Python简单读取json文件功能示例
2017/11/30 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
使用python模拟高斯分布例子
2019/12/09 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
医学生求职自荐信
2013/10/25 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014年教学工作总结
2014/11/13 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
员工年终考核评语
2014/12/31 职场文书
汉字听写大会观后感
2015/06/12 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
学习nginx基础知识
2021/09/04 Servers