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 相关文章推荐
一些易混淆且不常用的属性,希望有用
Jan 29 Javascript
jquery动态加载js三种方法实例
Aug 03 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
浅析node连接数据库(express+mysql)
Nov 30 Javascript
AngularJS使用指令增强标准表单元素功能
Jul 01 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
JavaScript从0开始构思表情插件
Jul 26 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
微信小程序发送短信验证码完整实例
Jan 07 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 文件类型判断代码
2009/03/13 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
javaScript基础详解
2017/01/19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python中join和split用法实例
2015/04/14 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
python中实现栈的三种方法
2020/12/19 Python
我的五年职业生涯规划
2014/01/23 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
合作与交流自我评价
2015/03/09 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
党员身份证明材料
2015/06/19 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
干部考核工作总结2015
2015/07/24 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
Python中的嵌套循环详情
2022/03/23 Python
Nginx的gzip相关介绍
2022/05/11 Servers