小程序登录拦截(页面)

文章介绍了如何在uniapp转换的小程序中,通过拦截器(navigateTo和switchTab)判断用户未登录时,将访问特定页面的用户重定向到登录页面。方法包括设置页面白名单,检查本地存储的登录状态,并在主页面引入相关配置。
摘要由CSDN通过智能技术生成

不登录不想叫人家去看你小程序里面的部分内容,你可以这样做!

我这个前提是 uniapp 转的 小程序 这一块 其他的 我没有试过(大佬们可以自尝试)


.第一个:引入我下面的这样一块代码  最好放在你的封装 请求的文件夹里面

//只要是未登录状态,想要跳转到名单内的路径时,直接跳到登录页。
// 页面白名单,不受拦截
const whiteList = [
	'/pages/index/start/start',//启动页面
  '/pages/my/my',//我的页面
	'/pages/index/index',//首页
	'/packageA/store/store',
	'/packageA/jxmd/jxmd',
	 
]
function hasPermission (url) {
	url=url.split('?')[0]
//这个是你存到本地的token  这里是你的名字
  let islogin = uni.getStorageSync("login").token;
  islogin = Boolean(islogin);//返回布尔值
	// console.log(islogin,"是否登录");
    // 在白名单中或有登录判断条件可以直接跳转
		// console.log(whiteList.includes(url),whiteList.indexOf(url) !== -1);
    if(whiteList.includes(url) || islogin) {//如果查到是白名单就为true,如果没有查到,登录了,也是true
        return true
    }
    return false
}
uni.addInterceptor('navigateTo', {
    // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
    invoke (e) {
			// console.log(e,"路由拦截");
        if(!hasPermission(e.url)){
            uni.navigateTo({
                url: '/pages/1ogin/1ogin'
            })
            return false
        }
        return true
    },
    success (e) {
			// console.log(e,'响应拦截');
    }
})
//使用 这个 uniapp中的api 
uni.addInterceptor('switchTab', {
    // tabbar页面跳转前进行拦截
    invoke (e) {
			// console.log(e,"路由拦截");
        if(!hasPermission(e.url)){
            uni.navigateTo({
                  url: '/pages/1ogin/1ogin'
            })
            return false
        }
        return true
    },
    success (e) {
    }
})

第二部就是 引入你们的 main.js(这里我的叫法 -- 主页面) 
 

import "@/router/index.js';

 第三步就是  如果没有登陆获取到 token 就会跳到相应的登陆界面 (白名单除外)
如有不足 请补充 谢谢

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_2524963996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值