vue使用localStorage保存登录信息 适用于移动端、PC端
众所周知,vue可以用来开发移动端app,可以使用hbuilder将build好的vue打包成一个移动端app,但是用过之后就会发现,使用cookies或者session保存登录的token,在手机端无法保存,每次打开app依然提示登录。那么我们可以使用localStorage来保存登录信息就可以了,具体代码如下
1、vuexstroe代码
index.js
importVuefrom'vue' importvuexfrom'vuex' import{login,logout,getInfo}from'@/api/login' import{getToken,setToken,removeToken,setlocalStorage,getlocalStorage,removelocalStorage}from'@/utils/user' Vue.use(vuex); //state为访问状态对象数字常量等 conststate={ x:5, token:getlocalStorage(), nickname:'', course_id:0, user_id:0, group_id:0, begin_group_num:0, student_group:0 }; //访问触发状态mutation是同步的 //actions是异步的 constmutations={ SET_TOKEN:(state,token)=>{ state.token=token }, SET_NAME:(state,nickname)=>{ state.nickname=nickname }, }; constactions={ Login({commit},userInfo){ constusername=userInfo.username.trim() returnnewPromise((resolve,reject)=>{ login(username,userInfo.password).then(response=>{ constdata=response.data setlocalStorage(data.token) commit('SET_TOKEN',data.token) resolve() }).catch(error=>{ console.log() reject(error) }) }) }, GetInfo({commit}){ returnnewPromise((resolve,reject)=>{ getInfo().then(response=>{ constdata=response.data console.log(data) commit('SET_NAME',data.nickname) resolve() }).catch(error=>{ console.log() }) }) }, //前端登出 FedLogOut({commit}){ returnnewPromise(resolve=>{ commit('SET_TOKEN','') removelocalStorage() resolve() }) } }; //getters类似于生命周期里面的钩子,getters是在页面刚刚加载完毕之后马上加载,类似于生命周期里面的created constgetters={ //测试getters x:state=>state.x+200, }; exportdefaultnewvuex.Store({ state, mutations, getters, actions })
2、localStorage代码
user.js
importCookiesfrom'js-cookie' constTokenKey='MuseUi-Token' exportfunctiongetToken(){ returnCookies.get(TokenKey) } exportfunctionsetToken(token){ returnCookies.set(TokenKey,token) } exportfunctionremoveToken(){ returnCookies.remove(TokenKey) } constSessionKey='usertoken' exportfunctionsetlocalStorage(token){ returnlocalStorage.setItem(SessionKey,token) } exportfunctiongetlocalStorage(){ returnlocalStorage.getItem(SessionKey) } exportfunctionremovelocalStorage(){ returnlocalStorage.setItem(SessionKey,null) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。