# 检测用户是否登录

很多时候我们需要检测用户是否登录, 如果登录, 才能做接下来的操作, 如果用户没有登录, 则弹框提示。比如加入购物车, 收藏商品等, 基于这个需求, 封装了一个通用方法, 如果需要根据业务定制, 则需要再做二次封装, 该方法需要配合本地存储一起使用。

# 检测用户是否登录

checkLogin(key, next, item = null, title = '检测到您未登录', content = '是否立即跳转到登录页面', loginPath, cancel, confirmColor, cancelColor, confirmText, cancelText)
key: 本地存储用户信息的键名 。 next: 用户已登录执行的回调, 该参数为一个函数。
item: next函数需要传的参数, 如果next函数没有参数则为null
title: 弹框的标题, 默认为检测到您未登录。
content: 弹框的提示内容, 是否立即跳转到登录页面。
loginPath: 未登录时, 用户点击确认按钮需要跳转的登录路径, 需要在pages.json里配置。
cancel: 用户点击取消按钮执行的回调函数。
confirmText: 确认按钮的文字。
confirmColor: 确认按钮的文字颜色。 cancelText: 取消按钮的文字。
cancelColor: 取消按钮的文字颜色。

<cc-button @click='add'>加入购物车<cc-button>

export default {
  methods: {
    // 需要先定义加入购物车的函数 传入到next参数里
    addCart(item) {
      // 模拟加入购物车请求
      this.$cc.http({
        url: '/api/addCart',
        data: item
      })
    },
    add() {
      this.$cc.checkLogin({
        key: 'user',
        next: this.addCart,
        item: {
          price: '3',
          id: 1,
          name: '可乐'
        },
        loginPath: '/pages/login/login'
      })
    }
  }
}
Last Updated: 8/16/2021, 2:18:04 PM