uniapp中token操作:存储、获取、失效处理。

实现代码

  1. 存储token:uni.setStorageSync('token', res.data.result);
  2. 获取token:uni.getStorageSync('token');
  3. 清除token:uni.setStorageSync('token', '');

应用场景

  • 在登录操作中,保存token
	pwdLogin() {....this.$axios.request({url: '.....',method: 'post',params: {username: this.username,password: this.password,...}}).then(res => {if (res.data.code !== 200) {uni.showToast({title: '登录失败',icon: 'error',duration: 2000})} else {// 保存 tokenuni.setStorageSync('token', res.data.result);// 保存用户信息到本地this.getUserInfo();// 登录成功  跳转结构物页面uni.switchTab({url: '../list/list',fail(e) {console.error(e);}})}})},
  • 请求头中获取token携带
/*** 全局配置* 只能配置 静态数据* `content-type` 默认为 application/json* `header` 中`content-type`设置特殊参数 或 配置其他会导致触发 跨域 问题,出现跨域会直接进入响应拦截器的catch函数中*/
export const config = {baseURL: "http://xxxx.com:8000/",header: {accessToken: uni.getStorageSync('token'),contentType: "application/x-www-form-urlencoded",// Content-Type: 'application/json'// 'Content-Type': 'application/json'}
};
  • 响应拦截器中处理token失效
/*** 全局 响应拦截器, 支持添加多个拦截器* 例如: 根据状态码选择性拦截、过滤转换数据** `return res` 继续返回数据* `return false` 停止返回数据,不会进入错误数据拦截,也不会进入catch函数中* `return Promise.reject('xxxxx')` 返回错误信息, 会错误数据拦截,也会进入catch函数中** @param {Object} res 请求返回的数据* @param {Object} config 发送请求的配置数据* @return {Object|Boolean|Promise<reject>}*/
globalInterceptor.response.use((res, config) => {// token失效处理if (res.data.code === 401) {// 登录已失效,请重新登录uni.showToast({title: '登录已失效,请重新登录',icon: 'error',duration: 2000})//清空当前保存的tokenuni.setStorageSync('token', '');// 强制跳转至登录页uni.reLaunch({url: '/pages/login/login',fail(e) {console.error(e);}});}return res;},(err, config) => {console.error("is global response fail interceptor");console.error("err: ", err);console.error("config: ", config);return Promise.reject(err);}
);

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

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

相关文章

嵌入式面试5 -makefile shell

2、 如果有一个简单的helloworld项目目录如下&#xff1a; tree helloworld helloworld |– file2.h |– file1.cpp |– file2.cpp 请编写一个Makefile文件。 答&#xff1a; TARGET helloworld CXX g COMPILE : $(COMPILE) file1.cpp COMPILE : $(COMPILE) file2.cpp OBJE…

搭建日志服务器Rsyslog

Rsyslog介绍 Rsyslog的全称是 rocket-fast system for log&#xff0c;它提供了高性能&#xff0c;高安全功能和模块化设计。rsyslog能够接受从各种各样的来源&#xff0c;将其输入&#xff0c;输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。 特…

SQL Server数据库如何添加Oracle链接服务器(Windows系统)

SQL Server数据库如何添加Oracle链接服务器 一、在添加访问Oracle的组件1.1 下载Oracle的组件 Oracle Provider for OLE DB1.2 注册该组件1.2.1 下载的压缩包解压位置1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行&#xff0c;否则会报错 二、配置环境变量三、 重启SQL Se…

java 图片处理 Graphics2D GraphicsMagick 避免oom

GraphicsMagick 号称图像处理领域的瑞士军刀。GraphicsMagick 是个图片处理库&#xff0c;是从ImageMagick 5.5.2分支出来。 Graphics2D是JDK 自带的一套图片处理库。但性能一般。 Java 方面也提供了类似 JNI 方式支持 GraphicsMagickim4java 处理图像。 但OpenCV&#xff0…

嵌入式面试7---进程or线程or同步

3.int main(){fork()||fork();}共创建几个进程&#xff08;B&#xff09; A.2 B.3 C.4 D.5 解析&#xff1a;首先&#xff0c;父进程fork后&#xff0c;给父进程返回子进程pid&#xff0c;此时为真&#xff0c;逻辑或语句不再执行&#xff0c;但是fork出的子进程是复制的父进程…

使用Spring五大注解来更加简单的存储Bean对象

在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 <bean id"xxx" class"xxx"> </bean> 为了简化存储Bean对象的操作&#xff0c;我们可以使用五大类注解来进行存储Bean对象 我们首先要在配置文件配置扫描路径…

【快应用】list组件属性的运用指导

【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示&#xff0c;在使用lsit列表组件设置columns进行多列渲染时&#xff0c;此时在里面加入刷新动画时&#xff0c;动画只占了list组件的一列&#xff0c;并没有完全占据一行宽度&…

把大模型装进手机,分几步?

点击关注 文 | 姚 悦 编 | 王一粟 大模型“跑”进手机&#xff0c;AI的战火已经从“云端”烧至“移动终端”。 “进入AI时代&#xff0c;华为盘古大模型将会来助力鸿蒙生态。”8月4日&#xff0c;华为常务董事、终端BG CEO、智能汽车解决方案BU CEO 余承东介绍&#xff0c…

Gson 添加数据默认值问题记录

问题&#xff1a;在用Gson add(key&#xff08;string类型&#xff09;&#xff0c;value&#xff08;必须是JsonElement子类&#xff09;&#xff09;时发现&#xff0c;value 传了 "" 空字符串&#xff08;非null&#xff09;&#xff0c;默认解析后返回null&#…

jmeter测试rpc接口-使用dubbo框架调用【杭州多测师_王sir】

1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾2.基于RPC架构&#xff0c;基于dubbo协议&#xff0c;thrift协议。SpringCloud微服务。3.基于RestFul架构&#xff0c;基于json规范。基于http协议(我们常用的都是这种&#xff0c;cms平台也是) Rest…

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

CSS 盒模型是什么?它包含哪些属性?标准盒模型/怪异盒模型

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 盒模型⭐ 标准盒模型⭐ 怪异盒模型⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

深度学习中的优化算法

文章目录 前言一、优化和深度学习1.1 优化的目标1.2 深度学习中的优化挑战1.2.1 局部最小值1.2.2 鞍点1.2.3 梯度消失 二、梯度下降2.1 一维梯度下降2.1.1 学习率 2.2 多元梯度下降2.3 自适应方法2.3.1 牛顿法2.3.2 其他自适应方法 三、随机梯度下降3.1 随机梯度更新3.2 动态学…

Go-Gin框架

一、Gin介绍 Gin是一个用Go编写的HTTPweb框架。它是一个类似于martini但拥有更好性能的API框架, 优于httprouter&#xff0c;速度提高了近 40 倍。 点击此处访问Gin官方中文文档。 二、安装 1、安装Gin go get -u github.com/gin-gonic/gin 2、代码中引入 import "g…

C#/.Net 程序调试

1:确定哪里出错了&#xff1f; 如果不知道在哪里出错了就在业务代码的第一步点断点&#xff1b; 2&#xff1a;必须使用F5或者点击按钮 3&#xff1a;当程序执行到你的断点的时候程序就会被卡死。黄色的条表示到了该行但是该代码还没有执行。 4&#xff1a;F10逐&#xff08;行…

java数组

概述 数组&#xff1a;存放一组相同数据类型的元素(数据) 按照一定的顺序排列的集合。数组是一个容器、 数组可以分为一维数组和二维数组 一维数组&#xff1a;一组数据二位数组&#xff1a;多组数据 一维数组 静态初始化 适用于一组数据是”已知的“ 语法格式 元素的数据…

安路FPGA的赋值报错——移位处理,加括号

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时&#xff0c;发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…

2024重庆邮电大学软件工程809题库(带答案)

1&#xff0e;下列选项中&#xff0c;不属于质量管理的主要任务的是&#xff08; C &#xff09;。 A&#xff09;制定软件质量保证计划 B&#xff09;按照质量评价体系控制软件质量要素 C&#xff09;增加软件产品的功能 D&#xff09;对最终软件产品进行确认 2&#xff0e;下…

网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)

TCP/IP协议族 一、IP协议 1、IP协议简介 IP协议又称网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议&#xff0c;是网络层中的协议。 2、特点 不可靠:它不能保证IP数据包能成功地到达它的目的地&#xff0c;仅…

系统与软件安全研究(八)

FUZZ101入门 Detail gcc,clang,llvm都有啥区别GCC (GNU Compiler Collection), Clang, 和 LLVM 都是用于编译代码的工具链。它们在某些方面有相似之处,但也有一些重要的区别。 GCC (GNU Compiler Collection):GCC 是由 GNU 组织开发的,是一个非常流行的开源编译器集合。它…