当前位置:首页 > JavaScript

js实现强制登录

2026-02-02 14:22:45JavaScript

实现强制登录的 JavaScript 方法

检查登录状态

通过检查本地存储(localStorage)或会话存储(sessionStorage)中的登录凭证来判断用户是否已登录。若未登录,则跳转到登录页面。

if (!localStorage.getItem('authToken')) {
  window.location.href = '/login.html';
}

路由拦截

在单页应用(SPA)中,可以通过路由守卫拦截未登录的访问请求。使用框架如 Vue Router 或 React Router 实现。

js实现强制登录

// Vue Router 示例
router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('authToken');
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

后端验证

前端发送请求时,后端应验证用户凭证的有效性。若凭证无效,返回 401 状态码,前端据此跳转到登录页面。

js实现强制登录

fetch('/api/protected', {
  headers: {
    'Authorization': `Bearer ${localStorage.getItem('authToken')}`
  }
}).then(response => {
  if (response.status === 401) {
    window.location.href = '/login.html';
  }
});

定时检查会话

设置定时器定期检查会话是否过期,避免用户长时间未操作导致会话失效。

setInterval(() => {
  fetch('/api/check-session', {
    headers: {
      'Authorization': `Bearer ${localStorage.getItem('authToken')}`
    }
  }).then(response => {
    if (response.status === 401) {
      window.location.href = '/login.html';
    }
  });
}, 300000); // 每5分钟检查一次

全局错误处理

通过全局错误处理捕获未授权的请求,统一跳转到登录页面。

window.addEventListener('unhandledrejection', event => {
  if (event.reason.status === 401) {
    window.location.href = '/login.html';
  }
});

注意事项

  • 敏感操作应结合后端验证,仅依赖前端验证不安全。
  • 登录凭证建议使用 HttpOnly 的 Cookie 存储,避免 XSS 攻击。
  • 跳转登录页时,可携带当前页面 URL 作为参数,登录后自动跳回原页面。

标签: js
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…