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操作文本框readOnly
May 15 Javascript
JavaScript获取GridView选择的行内容
Apr 14 Javascript
提升PHP安全:8个必须修改的PHP默认配置
Nov 17 Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
Oct 09 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
使用JavaScript进行表单校验功能
Aug 01 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
纯JS实现五子棋游戏
May 28 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
给Function做的OOP扩展
2009/05/07 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python pass 语句使用示例
2014/03/11 Python
Python设计模式之单例模式实例
2014/04/26 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
python绘制简单彩虹图
2018/11/19 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
优秀班集体获奖感言
2014/02/03 职场文书
关于学习的演讲稿
2014/05/10 职场文书
学校督导评估方案
2014/06/10 职场文书
上党课的心得体会
2014/09/02 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
芙蓉镇观后感
2015/06/10 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js