uniapp小程序token失效403跳转登录页坑!!!!当前页面多个接口会跳多个登录页案例 如何解决 !!!

当在微信开发者工具中遇到token失效导致的频繁跳转登录页问题,可以设置拦截器处理。在响应拦截器中检查状态码403时,如果存储中无jump标记,则跳转到登录页并设置标记。在登录页加载时清除该标记,防止多次跳转。
摘要由CSDN通过智能技术生成

 坑:在微信开发者里将token改为失效只会跳登录页一次,但真机测试就会随着页面掉多少个接口跳多少次登录页    以下是解决了多次跳转问题的代码

 1.在util/request.js   里面配置拦截器

//配置成功后的拦截器
service.interceptors.response.use(res => {
    //......成功的一系列操作
	const {code,data,msg} = res.data
	if (code == 200) {
		return data
	} else {
		return Promise.reject(msg);
	}

}, error => {
	if (error.response && error.response.status) {
		switch (error.response.status) {
			case 403:
				var jump = uni.getStorageSync('jump')  //以下解决多次跳转登录页的重点
				if (!jump) {
                 //以下做token失效的操作
					setTimeout(() => {
						uni.navigateTo({
							url: `/pages_my/auth` 
						});
					}, 100)
					uni.setStorageSync('jump', 'true')
				}

				break;
			default:
				uni.showToast({
					title: error,
					duration: 1500,
					icon: 'none',
				})
				break;
		}
	}

	return Promise.reject(error)
})

2.在token失效跳转的登录页做以下操作   写在onload事件中

	onLoad(options) {
			uni.removeStorage({
				key:'jump'
			})
	},

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uniapp小程序中,可以通过判断本地存储中是否存在token来判断用户是否已登录。如果存在token,则代表已登录,可以直接关闭启动进入首。如果不存在token,则代表未登录,可以跳转登录。以下是一个示例代码: ```javascript onLaunch: function() { // 判断本地存储是否有token let token = uni.getStorageSync('token'); if (token) { // 存在token则关闭启动进入首 plus.navigator.closeSplashscreen(); } else { // 不存在token跳转登录 uni.reLaunch({ url: "/pages/login/index", success: () => { plus.navigator.closeSplashscreen(); } }); } } ``` 这段代码在小程序的`onLaunch`生命周期函数中进行判断,如果存在token则关闭启动进入首,否则跳转登录。请注意,这只是一个示例代码,具体的实现方式可能根据你的项目需求而有所不同。 #### 引用[.reference_title] - *1* [uni-app开发的APP,启动时通过登录状态判断跳转到哪个页面](https://blog.csdn.net/WeiflR10/article/details/126875185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uniapp微信小程序不强制登陆的逻辑(模仿大厂登陆)](https://blog.csdn.net/qq_59747594/article/details/128493190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [uniapp判断是否登录跳转处理](https://blog.csdn.net/weixin_42395075/article/details/128632245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值