当前位置:首页 > 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 实现。

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

后端验证

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

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分钟检查一次

全局错误处理

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

js实现强制登录

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

注意事项

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

标签: js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现瀑布流

js实现瀑布流

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