Uni-App之登陆状态保持

简介

uni-app 中不支持读写 cookie,所以不能如传统的应用那样通过读取 cookie 来判断是否是登录状态。

流程

  1. 未登录状态
  2. 进行登录(后台验证账号密码通过,返回该账号用户名等信息)
  3. 状态改变(将返回的账号信息保存到本地)
  • 为了个页面共享账号信息,需要使用Vuex
const store = new Vuex.Store({  
    state: {  
        uerInfo: {},  
        hasLogin: false  
    },  
    mutations: {  
        login(state, provider) {//改变登录状态  
            state.hasLogin = true  
            //state.uerInfo.token = provider.token
            state.uerInfo.userName = provider.user_name  
            uni.setStorage({//将用户信息保存在本地  
                key: 'uerInfo',  
                data: provider  
            })  
        },  

        //退出登录    务必清除登录状态 以及 本地用户信息,防止下次打开app重现、以及出现不正确状态
        logout(state) {
            state.hasLogin = false  
            state.uerInfo = {}  
            uni.removeStorage({  
                key: 'uerInfo'  
            })  
        }  
    }  
})  
  1. 退出应用再次进入仍然是已登录状态
  • 在 App.vue 中判断用户是否保存用户信息 "uerInfo",如果保存则认为是登录状态,未保存则为未登录状态。
onLaunch: function () {  
           uni.getStorage({//获得保存在本地的用户信息  
               key: 'uerInfo',  
               success:(res) => {

                   //获取成功即说明本地有保存用户数据,把res.data继续给state.userInfo。并修改登录状态,由此达到登录状态


                   //this.login(res.data);  
                   //uni.request({// 再次校验并刷新token的有效时间  
                       //url: `${this.$serverUrl}/auth.php`,  
                       //header: {  
                       //   "Content-Type": "application/x-www-form-urlencoded",  
                       //    "Token":res.data.token  
                       //},  
                       //data: {  
                       //    "username":res.data.user_name  
                       //},  
                       //method: "POST",  
                       //success: (e) => {  
                       //    if (e.statusCode === 200 && e.data.code === 0) {  
                       //       this.login(e.data);  
                       //   }  
                       //}  
                   //})  
               }  
           });  
       },  

此为简化版,重在讲述业务逻辑,实际开发中登录需要严格验证,
返回的用户信信息也会多种多样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,269评论 0 51
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,481评论 1 17
  • 注:本文转载自前端大全 背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称...
    楠小忎阅读 746评论 0 0
  • 就是有某个特定的时刻,会极度渴望恋爱的感觉,尤其对于我这样双鱼座的人,在路上碰到个帅气小哥哥就会天马行空,短短...
    园在未来阅读 385评论 0 0
  • 新年至。 站在时光的渡口,一任思绪泛滥。 明媚夹杂着阴霾,甜蜜裹挟着忧伤,记忆瞬间决堤。 那些走过的路、爱过的人、...
    云卷云舒yunJuan阅读 1,887评论 9 33

友情链接更多精彩内容