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 相关文章推荐
JavaScript中的isXX系列是否继续使用的分析
Apr 16 Javascript
js常用代码段整理
Nov 30 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
javascript实现跨域的方法汇总
Jun 25 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
json实现添加、遍历与删除属性的方法
Jun 17 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
JavaScript 动态三角函数实例详解
Jan 08 Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
seajs和requirejs模块化简单案例分析
Aug 26 Javascript
React学习之受控组件与数据共享实例分析
Jan 06 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
PHP校验ISBN码的函数代码
2011/01/17 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
python生成器表达式和列表解析
2016/03/10 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python列表list排列组合操作示例
2018/12/18 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
法国时尚童装网站:Melijoe
2016/08/10 全球购物
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
土木工程师岗位职责
2013/11/24 职场文书
关于环保的建议书
2014/05/12 职场文书
故意伤害辩护词
2015/05/21 职场文书
叶问观后感
2015/06/15 职场文书
聘任通知书
2015/09/21 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
浅析MongoDB之安全认证
2021/06/26 MongoDB