【uniapp】uniapp实现免密登录

文章目录

    • 一、概要
    • 二、整体架构流程
    • 三、技术名词解释
    • 四 、技术细节
      • 1.存取token有效期?
      • 2.使用setStorageSync而不使用setStorage?
      • 3.使用onLaunch而不使用全局路由?

一、概要

打开一个网页或小程序的时候,我们有时候会自动进入主页,而不是登录页面。

怎么实现这个免密登录呢?

二、整体架构流程

以下是小程序免密登录流程图
在这里插入图片描述

我们常用setStorageSync来存储token,此后根据token是否存在来判断进入哪个页面。

三、技术名词解释

  • setStorageSync:uniapp官方文档:将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

  • onLaunch:当uni-app 初始化完成时触发(全局只触发一次)

四 、技术细节

1.存取token有效期?

存储token

// 设置token有效期
function setTokenExpiration(key, value, time) {const data = Date.now();const item = {value,Expire: data + time,};wx.setStorageSync(key, item);
}

setStorageSync第二个参数是任意类型,支持被 JSON.stringify 序列化的对象,可以将存储的时间和token值作为对象存入本地。

time是我们要传入token的有效期(ms),一般30天免密登录就是30*24*60*60

获取token

function getTokenExpiration(key) {const data = Date.now();let token = wx.getStorageSync(key);if (!token || token.Expire< data) {return null;}return token.value;
}

判断是否存在token,如果存储token的时间戳小于当前时间戳,则表示已经超过有效期,需要重新登录。

实际项目
在这里插入图片描述

2.使用setStorageSync而不使用setStorage?

  • 相同点
    • 都是微信小程序中用于存储数据的 API
  • 不同点
    • setStorage:
      • 异步接口,存储的时候会在后台进行,并不影响其他操作。
    • setStorageSync
      • 同步接口,会等待存储完成,才继续执行下面代码。

一般项目获取token之后可能要获取其他接口,而其他接口要带token,此时我们就用setStorageSync 同步接口,等获取到token后再去调用其他接口。

不好的点是存储会花费一些时间,可能会可能会阻塞主线程,导致界面卡顿或者无法响应用户的操作。

setStorage 性能相比会好。如果不要求实时性,推荐使用。

3.使用onLaunch而不使用全局路由?

onLaunch初始化完成时触发并且全局只触发一次,早于全局路由。项目简单使用

如果路由跳转逻辑复杂,建议使用全局路由,也好方便管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些王道书里的题目-----计算机网络篇

注&#xff1a;仅记录个人认为有启发的题目 p155 34.下列四个地址块中&#xff0c;与地址块 172.16.166.192/26 不重叠&#xff0c;且与172.16.166.192/26聚合后的地址块不会引入多余地址的是&#xff08;&#xff09; A.172.16.166.192/27 B.172.16.166.128/26 …

MySQL高级sql语句

目录 一、子查询 1.1查询分数大于80的记录 1.2将test3里的记录全部删除&#xff0c;重新插入class表的记录 ​编辑1.3将meixi的分数改为20 1.4删除分数大于80的记录 1.5删除分数不是大于等于80的记录 1.6查询如果存在分数等于80的记录则计算class的字段数 2.子查询&…

cuda python课程中“使用 Numba 的 CUDA Python 的自定义核函数和内存管理“一个大坑

总觉得自己的算法没问题&#xff0c;最终还是测试结果不符。 错误出现在一个很顺眼的位置。 解决方案 在最终测验阶段有一个看起来没问题不需要任何修改的Cell&#xff0c;就是这一句&#xff0c;看起来没什么毛病 d_histogram_out cuda.device_array_like(histogram_out)需…

Go通道机制与应用详解

目录 一、概述二、Go通道基础通道&#xff08;Channel&#xff09;简介创建和初始化通道通道与协程&#xff08;Goroutine&#xff09;的关联nil通道的特性 三、通道类型与操作通道类型1. 无缓冲通道 (Unbuffered Channels)2. 有缓冲通道 (Buffered Channels) 通道操作1. 发送操…

预期为文件结尾。json [行2,列1]

报错背景 在huggingface上传数据集后&#xff0c;Dataset Viewer无法显示&#xff0c;报错&#xff1a; The dataset viewer is not available for this split. Cannot extract the features (columns) for the split train of the config default of the dataset. Error cod…

HCIP作业

实验要求&#xff1a; 1、R6为ISP&#xff0c;接口IP地址均为公有地址&#xff0c;该设备只能配置IP地址&#xff0c;之后不能再对其进行任何配置&#xff1b; 2、R1-R5为局域网&#xff0c;私有IP地址192.168.1.0/24&#xff0c;请合理分配&#xff1b; 3、R1、R2、R4&#x…

Jenkins常用插件安装及全局配置

Jenkins常用插件安装及全局配置 前言 ​ Jenkins是一个流行的持续集成工具&#xff0c;通过安装适用的插件&#xff0c;可以扩展Jenkins的功能&#xff0c;并与其他工具和系统集成。本文将介绍一些常用的Jenkins插件以及安装和配置的步骤。通过安装和配置这些常用插件&#xf…

鸿蒙开发之ArkUI组件常用组件图片和文本

ArkUI即方舟开发框架是HarmonyOS应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能&#xff08;组件、布局、动画以及交互事件&#xff09;&#xff0c;以及实时界面预览工具等&#xff0c;可以支持开发者进行可视化界面开发。 开发文档地址 &…

Docker安装各种组件

列举镜像 docker images // 列举镜像 搜索镜像 docker search jdk 下载镜像&#xff1a; docker pull java 查看镜像&#xff1a; docker images 启动镜像&#xff1a; docker run -it --name jdk1.8 -d java:latest /bin/bash 查看容器&#xff1a; docker ps 查看…

STM32之HAL开发——系统定时器(SysTick)

系统定时器&#xff08;SysTick&#xff09;介绍 SysTick—系统定时器是属于 CM3 内核中的一个外设&#xff0c;内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器&#xff0c;计数器每计数一次的时间为 1/SYSCLK&#xff0c;一般我们设置系统时钟 SYSCLK等于 72M。当…

ChatGPT智能聊天系统源码v2.7.6全开源Vue前后端+后端PHP

测试环境:Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6,根目录public,伪静态thinkPHP,开启ssl证书 具有文章改写、广告营销文案、编程助手、办公达人、知心好友、家庭助手、出行助手、社交平台内容、视频脚本创作、AI绘画、思维导图等功能 ai通道:文心一言、MiniMax、智…

Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述 在 Windows 操作系统中&#xff0c;程序图标一般会涉及三个地方&#xff1b; &#xff08;1&#xff09; 可执行程序&#xff08;以及对应的快捷方式&#xff09;的图标 &#xff08;2&#xff09; 程序界面标题栏图标 &#xff08;3&#xff09;程序在任务…

知攻善防应急靶场-Linux(1)

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全应急响应和知攻善防实验室靶场&#xff0c;记录自己的学习过程&am…

再仔细品品Elasticsearch的向量检索

我在es一开始有向量检索&#xff0c;就开始关注这方面内容了。特别是在8.X之后的版本&#xff0c;更是如此。我也已经把它应用在亿级的生产环境中&#xff0c;用于多模态检索和语义检索&#xff0c;以及RAG相关。 也做过很多的优化&#xff1a;ES 8.x 向量检索性能测试 & 把…

【算法】环形纸牌均分问题

104. 货仓选址 - AcWing题库 有n家商店&#xff0c;求把货仓建在哪能使得货仓到每个点的距离总和最小&#xff0c;输出最短的距离总和。 首先&#xff0c;我们看只有两个点的情况&#xff0c;在这种情况下我们选[1,2]的任何一个位置都是一样的&#xff0c;总和就是这段区间的长…

【机器学习】包裹式特征选择之序列前向选择法

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

证书(公钥):网络安全的关键

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

eBMC套件固件烧录及上电过程

1 概述 本期讲解 eBMC 套件上电和固件烧录过程。关于 eBMC 套件的开关、接口和芯片位置&#xff0c;可查看前两期文章&#xff0c;里面有详细描述。 2 固件烧录 eBMC 套件烧录涉及以下固件、其芯片位置和烧录口位置&#xff1a; 其中&#xff0c;eBMC-D4 板上固件可…

『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用

&#x1f680;『Apisix系列文章』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】 &#x1f4e3;读完这篇文章里你能收获到 &#x1f3af; 掌握APISIX中多种负载均衡策略的原理及其适用场景。&#x1f4c8; 学习如何通过APISIX的Admin API和Dashboard进行负…

软考100-上午题-【信息安全】-网络攻击

一、常见的网络攻击 拒绝服务攻击(Dos攻击)&#xff1a;目的是使计算机或网络无法提供正常的服务 拒绝服务攻击是不断向计算机发起请求来实现的&#xff0c;是一种网络攻击手段。 攻击者通过向目标服务器发送大量的无效请求&#xff0c;如TCP连接请求、HTTP请求等&#xff0…