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

这篇具有很好参考价值的文章主要介绍了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 {
						// 保存 token
						uni.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
			})
			//清空当前保存的token
			uni.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);
	}
);

文章来源地址https://www.toymoban.com/news/detail-638841.html

到了这里,关于uniapp中token操作:存储、获取、失效处理。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app中在模拟器上内容可以滚动,真机上失效问题解决

    uni-app中在模拟器上内容可以滚动,真机上失效问题解决 1、刚刚开始使用的是view组件,给定了高度,超出部分y轴滚动,微信小程序模拟器上面一直为正常 代码如下: 2、为了适配真机,在view组件外边套用了scroll-view,利用该组件中的组件配置滚动

    2024年01月20日
    浏览(49)
  • uni-app开发微信小程序数据 \n 换行符失效问题

    前言 使用uni-app开发微信小程序时,使用text显示字符串(字符串带n),需要在n处直接换行。 1、本地字符串,可以直接换行显示。 2、后台返回字符串,直接换行失效。原因:渲染时 n 直接被当成字符串处理了,根本不识别。 效果图       实现 1、使用replace()方法,字符

    2024年02月15日
    浏览(42)
  • uni-app本地存储

    大家好,今天和大家分享一下uni-app中的本地存储,其中分为同步和异步,有些朋友可能也在这两个概念中迷惑过,下面我们就来讲讲这个本地存储。 1.uni.setStorage(OBJECT) 将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。 OBJECT参数 参

    2024年02月05日
    浏览(36)
  • 【UniApp】-uni-app-网络请求

    经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法 首先我们打开官方文档,我先带着大家看一下官方文档的介绍:https://uniapp.dcloud.net.cn/api/request/request.html 从官方文档中我们可以看到,可以

    2024年02月04日
    浏览(34)
  • 【UniApp】-uni-app-打包成网页

    经过上一篇文章的介绍,已经将这个计算器的计算功能实现了,接下来就是我们项目当中的一个发包上线阶段,我模拟一下,目的就是为了给大家介绍一下,uni-app是如何打包成网页的。 除了可以打包成网页,uni-app还可以打包成小程序、App、H5、快应用等等,后面在单独开文

    2024年02月04日
    浏览(52)
  • Uniapp uni-app学习与快速上手

    个人开源uni-app开源项目地址:准备中 在线展示项目地址:准备中 什么是uni-app uni,读 you ni ,是统一的意思。 Dcloud即数字天堂(北京)网络技术有限公司是W3C成员及HTML5中国产业联盟发起单位,致力于推进HTML5发展构建,HTML5生态。 2012年,DCloud开始研发小程序技术,优化webvie

    2024年02月09日
    浏览(43)
  • 『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP。 打包 App 也是一样的,首先需要配置关于 App 应用的基础信息,打开 manifest

    2024年02月04日
    浏览(53)
  • uni-app 获取android相册

    在uni-app中提供的封装好的api中没有提供获取手机相册的能力,只能打开相册后由用户选择其中的照片,而插件库中提供的获取相册的插件都是收费的,这里为大家分享一个可以自己获取android相册的代码段:

    2024年02月11日
    浏览(34)
  • uni-app(微信小程序)获取当前位置uni.getLocation

     1、微信公众平台  开发  开发管理   2、开通之后到项目文件    3、下载腾讯地图插件并引入到文件中    

    2024年02月11日
    浏览(40)
  • uni-app微信小程序uni.getLocation获取经度纬度【定位】

    需求:点击按钮获取当前微信位置,以及点击拒绝授权后,下次点击还可以拉起授权窗口; 拒绝授权后重新拉起授权操作: 直接授权操作: 原因:因为微信小程序从2019年1月14日起新提交发布的版本若未填写地理位置用途说明,则将无法正常调用地理位置相关接口; 解决办

    2024年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包