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 命名空间以提高代码重用性
Nov 13 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 Javascript
原生js实现滑块区间组件
Jan 20 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
JS前端可扩展的低代码UI框架Sunmao使用详解
Jul 23 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 使用GD库为页面增加水印示例代码
2014/03/24 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python中print和return的作用及区别解析
2019/05/05 Python
pandas计数 value_counts()的使用
2019/06/24 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python实现批量修改文件名
2020/03/23 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
桥梁工程专业求职信
2014/04/21 职场文书
个人工作表现评语
2014/04/30 职场文书
银行求职自荐书
2014/06/25 职场文书
快递员岗位职责
2014/09/12 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
基于Python实现一个春节倒计时脚本
2022/01/22 Python