当前位置:首页 > VUE

vue登录如何实现

2026-01-16 23:01:32VUE

Vue 登录功能实现

前端部分(Vue.js)

1. 创建登录表单组件

<template>
  <div>
    <form @submit.prevent="handleLogin">
      <input v-model="username" type="text" placeholder="用户名" />
      <input v-model="password" type="password" placeholder="密码" />
      <button type="submit">登录</button>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    async handleLogin() {
      try {
        const response = await this.$axios.post('/api/login', {
          username: this.username,
          password: this.password
        })
        localStorage.setItem('token', response.data.token)
        this.$router.push('/dashboard')
      } catch (error) {
        console.error('登录失败:', error)
      }
    }
  }
}
</script>

2. 配置axios拦截器 在main.js或单独的文件中配置axios拦截器,用于自动添加token到请求头:

import axios from 'axios'

axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
})

Vue.prototype.$axios = axios

后端部分(Node.js示例)

1. 创建登录路由

const express = require('express')
const jwt = require('jsonwebtoken')
const router = express.Router()

router.post('/login', (req, res) => {
  const { username, password } = req.body

  // 实际项目中这里应该查询数据库验证用户
  if (username === 'admin' && password === '123456') {
    const token = jwt.sign({ username }, 'your-secret-key', { expiresIn: '1h' })
    res.json({ token })
  } else {
    res.status(401).json({ error: '用户名或密码错误' })
  }
})

2. 创建验证中间件

function authenticateToken(req, res, next) {
  const authHeader = req.headers['authorization']
  const token = authHeader && authHeader.split(' ')[1]

  if (!token) return res.sendStatus(401)

  jwt.verify(token, 'your-secret-key', (err, user) => {
    if (err) return res.sendStatus(403)
    req.user = user
    next()
  })
}

安全增强措施

1. 使用HTTPS 确保所有登录请求通过HTTPS传输,防止敏感信息被窃取。

2. 实现CSRF防护 可以添加CSRF token到表单中,后端验证该token的有效性。

3. 密码加密存储 后端存储密码时应使用bcrypt等库进行哈希处理,不要明文存储。

4. 速率限制 对登录接口实施速率限制,防止暴力破解攻击。

5. 会话管理 设置合理的token过期时间,实现token刷新机制。

测试与调试

1. 测试登录流程 使用不同测试用例验证登录功能,包括正确凭据、错误凭据、空输入等情况。

2. 检查网络请求 通过浏览器开发者工具检查登录请求和响应,确保数据格式正确。

3. 验证token存储 登录后检查localStorage中token是否正确存储,后续请求是否自动携带token。

vue登录如何实现

标签: 如何实现vue
分享给朋友:

相关文章

vue实现走势图

vue实现走势图

Vue 实现走势图的方法 使用 ECharts 库 ECharts 是一个强大的数据可视化库,支持多种图表类型,包括走势图(折线图)。在 Vue 项目中可以通过 vue-echarts 封装库或直接使…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue交互实现

vue交互实现

Vue 交互实现方法 Vue.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表…

vue实现triger

vue实现triger

在Vue中实现触发器(trigger)功能通常涉及自定义事件或DOM事件触发。以下是几种常见场景的实现方法: 自定义事件触发 通过$emit方法触发父组件中监听的自定义事件: // 子组件 t…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <temp…