uniapp判断用户是否登录过期

uniapp yekong

在UniApp中判断用户是否登录或登录是否过期,通常涉及到对登录令牌(Token)的验证。一般的做法是在用户登录成功后,服务器会返回一个Token,前端将这个Token保存起来(通常是保存在本地存储中),之后的每次请求都会携带这个Token以验证用户身份。判断用户是否登录或登录是否过期,主要可以通过以下几个步骤实现:

  1. 保存Token:在用户登录成功后,将服务器返回的Token保存到本地存储中,如使用uni.setStorageSync方法。

  2. 请求拦截:在每次发送请求前,通过请求拦截器检查本地是否存在Token,如果不存在,可以认为用户未登录或登录已过期。

  3. 响应拦截:在请求的响应拦截器中,检查服务器的响应状态码。如果状态码表示Token无效或过期(例如401状态码),则提示用户重新登录。

  4. 封装检查登录状态的函数:封装一个函数来检查Token的存在与否,以及是否有效。如果Token不存在或已过期,可以引导用户跳转到登录页面。

以下是一个简单的示例代码:

// 检查用户是否登录的函数
function checkLogin() {
  const token = uni.getStorageSync('userToken');
  if (!token) {
    uni.showModal({
      title: '提示',
      content: '您还未登录,是否现在登录?',
      success: function (res) {
        if (res.confirm) {
          // 用户点击确定,跳转到登录页面
          uni.navigateTo({
            url: '/pages/login/login'
          });
        }
      }
    });
    return false;
  }
  // 这里可以添加更多的Token验证逻辑,如检查Token是否过期
  return true;
}

// 在需要验证登录状态的页面或操作前调用
if (checkLogin()) {
  // 执行需要登录后才能进行的操作
}

在实际应用中,Token的验证逻辑可能更复杂,包括Token的刷新机制等。此外,具体的状态码和处理逻辑可能根据后端API的设计有所不同,需要根据实际情况进行调整.

喜欢