You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何结合localStorage实现登录功能及跳转控制

基于localStorage的登录跳转功能实现方案

1. 登录成功后的存储与跳转逻辑

登录接口校验账号密码通过后,先往localStorage写入登录状态标识,再执行页面跳转:

// 登录请求成功后的回调函数
function afterLoginSuccess(userData) {
  // 存储登录状态与用户信息,敏感信息存储前需做加密处理
  localStorage.setItem('login_status', 'valid')
  localStorage.setItem('user_info', JSON.stringify(userData))
  // 跳转至指定目标页
  window.location.href = '/health'
}

注:不要在localStorage中存储明文密码、身份证号这类高度敏感的信息

2. 全局登录状态校验逻辑

所有需要登录权限的页面,都需要在初始化阶段先校验登录状态,未登录直接跳转登录页:

// 全局登录校验函数,可放在公共JS文件中所有页面统一引入
function authCheck() {
  const currentPage = window.location.pathname
  // 登录页本身跳过校验,避免死循环跳转
  if (currentPage === '/login') return
  // 读取本地存储的登录标识
  const loginStatus = localStorage.getItem('login_status')
  // 未匹配到有效登录标识则跳转登录页
  if (!loginStatus || loginStatus !== 'valid') {
    window.location.href = '/login'
  }
}
// 页面加载时立即执行校验
authCheck()

如果使用Vue、React等单页框架,直接将上述校验逻辑放在全局路由守卫中执行即可,无需每个页面单独引入。

3. 登出逻辑配套处理

用户触发登出操作时,要清空本地存储的登录相关内容,再跳转登录页:

function handleLogout() {
  // 清空所有登录相关存储字段
  localStorage.removeItem('login_status')
  localStorage.removeItem('user_info')
  // 跳转登录页
  window.location.href = '/login'
}

异常情况排查

如果未达到预期效果,优先核对以下几点:

  • 登录成功后是否成功写入了localStorage,可打开浏览器开发者工具-应用-本地存储,查看对应域名下的字段是否存在
  • 权限校验逻辑是否在所有受保护的页面都成功执行,有没有遗漏页面引入
  • 校验逻辑是否排除了登录页,避免出现登录页也触发校验导致的反复跳转死循环
  • 所有页面需在同一个域名下,localStorage为域名隔离存储,跨域名无法读取对应内容

内容的提问来源于stack exchange,提问作者Leo Garry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:18:03