应用中,保持登录状态是常见需求,本文讲解使用uni-app框架时如何保持用户登录状态。

即:初次进入应用为未登录状态------->登录---------->关闭应用,再次打开--------->为已登录状态

传统应用保持登录状态的方式是通过读取 cookie 来判断是否是登录状态,但是uni-app不支持对cookie的读写。因为uni-app框架的主体是 VUE,所以可以使用  vuex  进行登录态管理。

关于vuex中定义的全局变量和方法需要定义在指定目录的文件内。

即在项目目录下新建名称为  store  的目录,目录下创建用于定义全局变量和方法的  js  文件,如下图:

index.js文件内容如下图所示:

想要定义的这个 js 文件中的变量和方法能在各个页面使用并生效,需要先在项目目录下的  main.js  文件中导入这个  js  文件并声明方法,如下图所示:

声明结束后就可以在页面中监控全局变量和相应方法了,下面在一个登录页面中具体展示。

先在页面导入vuex的方法,如下:

然后,在 computed 计算属性方法中使用  mapState 对全局变量进行监控,在 method中使用  mapMutations  进行全局方法监控,如下所示:

定义登录成功后跳转到个人中心的函数,如下:

网络请求成功后,在回调函数 success 中调用该方法,并把回调函数的返回值数据传给 login 方法,如下:

随后  index.js  文件中的login方法会把传过来的用户数据保存在本地缓存中。

app没等进入应用时由APP.vue文件中的周期函数对app进行监听,所以在加载函数中定义方法,从本地缓存中取出用户数据进行登录,这样只要不清除本地缓存,每次打开应用的时候都会时登录状态,不需要反复发起网络登录请求,如下:

/******************************关于此种登录态管理方法遇到的问题和解决方法补充说明*********************************

*******************************2019/12/11************************************************************************************

*******************************Edward***************************************************************************************/

由于此种方式是把第一次登陆的用户账户信息保存在本地缓存,可能会遇到以下问题:

(1)如果用户的密码等隐私信息在后台并没有进行加密处理,则会保存在本地缓存,有可能被其他拥有读取缓存权限的应用获取导致隐私泄露。

解决办法:正规的开发流程中,后台返回到前端的用户数据中,绝大部分信息都应该是通过MD5等加密算法加密过后的,如果没有,应进行后台处理。

(2)通常需要登录的应用,后台的token令牌是有有效期限的,期限过了之后所有需要用到token的接口请求都会失败。保存在本地的缓存如果不重新执行登录操作刷新缓存数据,则会有token失效的问题。

解决办法:(1)在前端也编写缓存清理期限,与后台保持一致,到达期限后提示用户登录失效,请重新登录。

     (2)后台提供用户信息获取接口,在应用的生命周期函数里调用接口刷新缓存。

Uni-app登录态管理(vuex)的更多相关文章

  1. Vue-状态管理Vuex的使用

    vuex是状态管理,是为了解决跨组件之间数据共享问题的,一个组件的数据变化会映射到使用这个数据的其他组件当中.如果刷新页面,之前存储的vuex数据全部都会被初始化掉.以一个全局单例模式管理当应用遇到多 ...

  2. 完整且易读的最新版小程序登录态和检验注册过没的app.js写法

    目录 0.可参考的官方页面 1.流程 2.app.js代码 3.java后台怎么通过code获取openId 0.可参考的官方页面 获取登录凭证:https://developers.weixin.q ...

  3. uni-app 保持登录状态 (Vuex)

    在小程序中,保持登录状态是很常见的需求,今天就把写一写使用uni-app框架的保持登录状态功能是怎样实现的. 一.场景需求 1.场景:初始打开---登陆---关闭,再次打开---(已登录)上次关闭前的 ...

  4. Vue之状态管理(vuex)与接口调用

    Vue之状态管理(vuex)与接口调用 一,介绍与需求 1.1,介绍 1,状态管理(vuex) Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态 ...

  5. Vue状态管理vuex

    前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 V ...

  6. 微信小程序中用户登录和登录态维护

    提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户 ...

  7. 状态管理Vuex

    路由Router 配置 {path:'/login',component:Login} 路由出口 router-view 传参 {path:'/login/:id',component:Login} ...

  8. 微信小程序API登录凭证(code),获得的用户登录态拥有一定的时效性

    调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key).用户数据的加解密通讯需要依赖会话密钥完成. OBJECT参 ...

  9. Vue 状态管理 Vuex

    1.概述 Vuex作为插件,管理和维护整个项目的组件状态. 2.安装vuex cnpm i --save vuex 3.vuex使用 github地址:https://github.com/MengF ...

随机推荐

  1. opencl(6)读写传输命令、内存映射命令

    1:将缓存对象的内容读到缓存对象中(从设备到主机) cl_int clEnqueuReadBuffer( cl_command_queue command_queue, //命令队列 cl_mem b ...

  2. window10下通过docker安装swoole,运行laravel-swoole服务

    最近公司压测一个接口,用laravel框架,业务逻辑就是从缓存中取数据,tps总是上不去,于是决定换下swoole来替换php-fpm,来处理php请求,tps比原来高了好几倍. 现在有个问题就是wi ...

  3. 6.keras-基于CNN网络的Mnist数据集分类

    keras-基于CNN网络的Mnist数据集分类 1.数据的载入和预处理 import numpy as np from keras.datasets import mnist from keras. ...

  4. PostgreSQL常用脚本整理

    1.序列 以自增serial类型主键的序列: alter sequence s_seq restart with 1; #重置序列select currval('tablename_pid_seq') ...

  5. 这才是Android设置界面的正确做法👌👌👌

    话不多说,先上效果图 本文参考简书博客:<这才是Android设置界面的正确做法>一文写成,在其基础上删改并增加了一些内容.建议新窗口打开原文,在本文讲述不清楚的地方参考原文去寻找答案. ...

  6. 【实战】基于OpenCV的水表字符识别(OCR)

    目录 1. USB摄像头取图 2. 图像预处理:获取屏幕ROI 2.1. 分离提取屏幕区域 2.2. 计算屏幕区域的旋转角度 2.3. 裁剪屏幕区域 2.4. 旋转图像至正向视角 2.5. 提取文字图 ...

  7. MongoDB——基本使用及集群搭建

    文章目录 什么是MongoDb? 基本概念 与关系型数据库的比较 Mongo的高效性 文件存储 基本使用 启动/连接服务 基础操作命令 高可用集群搭建 概念 环境准备 实践 应用场景 总结 什么是Mo ...

  8. 1、安装配置Git私有服务器

    安装并配置一个私有的Git服务器吧,这样自己的代码就可以进行版本控制了,当然版本控制的重要性嘛,Please Baidu. 系统环境:64位Win10 Version 1909 安装步骤: 1.下载j ...

  9. position中的四种属性

    Position有四个属性值,分别是static .fixed. relative .absolute. 第一个属性值是static,这是position的默认属性,一般我们都不会用到它,所以也很少提 ...

  10. localStorage. sessionStorage、 Cookie不共同点:(面试题)

    ●存储大小的不同: localStorage的大小一般为5M sessionStorage的大小一般为5M cookies的大小一般为4K ●有效期不同: 1.localStorage的有效期为永久有 ...