当前位置:首页 > JavaScript

js实现强制登录

2026-03-15 14:35:14JavaScript

实现强制登录的 JavaScript 方法

在 Web 应用中实现强制登录功能,通常需要结合前端路由拦截、权限验证和后端接口校验。以下是几种常见的方法:

路由拦截

使用前端框架(如 Vue、React)的路由守卫功能,在用户访问受限页面时检查登录状态:

// Vue Router 示例
router.beforeEach((to, from, next) => {
  const isAuthenticated = checkAuthStatus() // 检查登录状态的方法
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

本地存储检查

通过检查 localStorage 或 sessionStorage 中存储的 token 判断登录状态:

function checkAuthStatus() {
  return !!localStorage.getItem('authToken')
}

if (!checkAuthStatus() && !isLoginPage()) {
  window.location.href = '/login'
}

全局请求拦截

使用 axios 等 HTTP 库设置请求拦截器,当后端返回 401 状态码时跳转登录页:

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      window.location.href = '/login?redirect=' + encodeURIComponent(window.location.pathname)
    }
    return Promise.reject(error)
  }
)

定时检查登录状态

设置定时器定期检查登录状态,防止 token 过期后用户仍停留在页面:

setInterval(() => {
  if (!checkAuthStatus()) {
    alert('会话已过期,请重新登录')
    window.location.href = '/login'
  }
}, 300000) // 每5分钟检查一次

关键页面保护

对敏感操作(如支付页面)添加额外的保护层:

js实现强制登录

document.addEventListener('DOMContentLoaded', () => {
  if (!checkAuthStatus()) {
    document.body.innerHTML = '<div class="login-redirect">请先登录</div>'
    setTimeout(() => {
      window.location.href = '/login'
    }, 2000)
  }
})

注意事项

  • 所有前端验证都需配合后端验证,仅前端验证不安全
  • 敏感操作应使用 HTTPS 协议确保传输安全
  • 考虑实现 token 刷新机制避免频繁跳转登录页
  • 登录后应妥善处理重定向逻辑,提升用户体验

标签: js
分享给朋友:

相关文章

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…