原生小程序中-登录判断,没登录不显示内容

文章介绍了如何在微信小程序中创建一个名为authorization的自定义组件,用于检测用户登录状态。当用户未登录时,组件会隐藏页面内容并重定向到登录页面,同时保存未访问页面的路径。登录成功后,用户将被定向回之前尝试访问的页面。
摘要由CSDN通过智能技术生成

1,在根目录创建 components,然后在它里面创建一个authorization(随意 以后用当插件用)

2,在components/authorization目录中创建组件

a:完成结构

<!-- 用户未登录就不显示页面的内容 -->
<slot wx:if="{{ isShow }}"></slot>

b:完成逻辑

// components/authorization/index.js
Component({
  // 使用组件时,要判断是否存在 token (如果存在,不管;不存在,跳转到登录页面)
  attached() {
    const token = getApp().token
    this.setData({
      isShow: token ? true : false,
    })
    if (!token) {
      wx.reLaunch({ url: '/pages/login/index' })
      return
    }
  },
})

c:在 app.json 中全局注册该组件

{
  ...
  "usingComponents": {
     "authorization": "./components/authorization/index",
  }
  ...
}

d:在要使用的 wxml中使用

<authorization>
wxml内容
</authorization>

包起来  当isShow为 true 就显示   为 false就不显示

加强-登录检测 - 封装组件 - 保存未访问的页面

说明:

--未登录时,应该将本次访问的页面保存起来

--等到登录成功,再次跳转到这个页面中

--未访问的页面路径我们可以保存在登录的路径上

步骤:

--a:获取跳转的页面路径

--b:在跳转到登录页面时,保存到登录路径中

// components/authorization/index.js
Component({
  // 使用组件时,要判断是否存在 token (如果存在,不管;不存在,跳转到登录页面)
  attached() {
    const token = getApp().token
    this.setData({
      isShow: token ? true : false,
    })
    if (!token) {
      const pages = getCurrentPages() //getCurrentPages() 函数用于获取当前页面栈的实例
      // 保存当前页面路径
      const path = '/' + pages[pages.length - 1].route  //固定写法
      wx.reLaunch({ url: `/pages/login/index?redirectURL=${path}` })
      return
    }
  },
})

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值