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 相关文章推荐
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
AngularJS语法详解
Jan 23 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
前端主流框架vue学习笔记第一篇
Jul 26 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
基于elementUI实现图片预览组件的示例代码
Mar 31 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
vue项目接口域名动态获取操作
Aug 13 Javascript
字节飞书面试promise.all实现示例
Jun 16 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通过rmdir删除目录的简单用法
2015/03/18 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
javascript动态加载二
2012/08/22 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
Node.js 的模块知识汇总
2017/08/16 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
python海龟绘图实例教程
2014/07/24 Python
Python中获取对象信息的方法
2015/04/27 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python实现函数极小值
2019/07/10 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
企业文明单位申报材料
2014/05/16 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
Java实现多线程聊天室
2021/06/26 Java/Android
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android