当前位置:首页 > VUE

vue实现登录不用token

2026-01-21 13:12:22VUE

Vue 实现无 Token 登录方案

在 Vue 中实现无 Token 登录通常依赖于传统的 Session-Cookie 机制或本地存储验证。以下是几种常见方法:

基于 Session-Cookie 的认证

后端需配置支持 Session,前端通过表单提交用户名密码:

vue实现登录不用token

// 登录请求示例
axios.post('/login', {
  username: 'user',
  password: 'pass'
}).then(response => {
  // 后端会在响应头设置Set-Cookie
  if (response.data.success) {
    this.$router.push('/dashboard')
  }
})

浏览器会自动管理 Cookie,后续请求会自动携带。需确保 withCredentials: true

axios.defaults.withCredentials = true

本地存储用户状态

将登录状态保存在 localStorage 或 Vuex 中:

vue实现登录不用token

// 登录成功后存储状态
localStorage.setItem('isAuthenticated', 'true')
localStorage.setItem('username', 'user')

// 路由守卫检查
router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !localStorage.getItem('isAuthenticated')) {
    next('/login')
  } else {
    next()
  }
})

基于 HTTP Basic Auth

通过 Base64 编码用户名密码(安全性较低,适合内部系统):

axios.get('/api', {
  headers: {
    'Authorization': 'Basic ' + btoa('user:pass')
  }
})

服务端渲染(SSR)方案

使用 Nuxt.js 时可直接通过 req.session 管理:

// nuxtServerInit 动作
export const actions = {
  async nuxtServerInit({ dispatch }, { req }) {
    if (req.session.user) {
      await dispatch('user/setUser', req.session.user)
    }
  }
}

安全注意事项

  • 始终使用 HTTPS 传输敏感数据
  • Session 需设置 HttpOnly 和 Secure 属性
  • 考虑添加 CSRF 保护机制
  • 敏感操作应进行二次验证

这些方案适用于不需要分布式认证的简单系统,对于需要更高安全性的场景仍推荐采用 Token 机制。

标签: vuetoken
分享给朋友:

相关文章

vue实现条件判断

vue实现条件判断

Vue 条件判断实现方法 Vue 提供了多种方式实现条件判断,可以根据不同场景选择合适的方式。 v-if / v-else-if / v-else 这是 Vue 中最常用的条件渲染指令,根据表达式的…

vue实现颜色

vue实现颜色

Vue 实现颜色的方法 在 Vue 中实现颜色管理可以通过多种方式,以下是一些常见的方法: 使用 CSS 变量动态绑定颜色 在 Vue 组件的样式中定义 CSS 变量,并通过 Vue 的数据绑定动态…

vue实现swiper

vue实现swiper

Vue 中实现 Swiper 的方法 安装 Swiper 依赖 在 Vue 项目中安装 Swiper 和相关依赖: npm install swiper vue-awesome-swiper 全局引…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…

vue  实现分页

vue 实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的数据和前端的分页组件。分页的核心逻辑包括计算总页数、处理当前页码变化以及触发数据请求。 分页组件示例 使用Element UI的分页…

vue 水印 实现

vue 水印 实现

Vue 水印实现方法 使用 canvas 动态生成水印 在 Vue 组件中通过 canvas 绘制水印,并将其作为背景图片插入到目标元素中。这种方法灵活性高,支持动态调整水印内容、角度和透明度。 &…