当前位置:首页 > VUE

vue怎么实现登录功能

2026-02-21 07:24:23VUE

实现登录功能的基本步骤

安装必要的依赖,如axios用于发送HTTP请求,vue-router用于页面跳转管理。

npm install axios vue-router

创建登录页面组件

src/views目录下创建Login.vue文件,包含用户名和密码输入框及提交按钮。

<template>
  <div>
    <input v-model="username" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <button @click="handleLogin">登录</button>
  </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>

配置路由

src/router/index.js中设置登录页面的路由。

import Vue from 'vue'
import Router from 'vue-router'
import Login from '../views/Login.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/login',
      name: 'Login',
      component: Login
    }
  ]
})

设置请求拦截器

src/main.js中配置axios全局实例和请求拦截器,用于自动添加认证令牌。

import axios from 'axios'

Vue.prototype.$axios = axios.create({
  baseURL: 'http://your-api-domain.com'
})

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

实现路由守卫

在路由配置中添加导航守卫,保护需要认证的路由。

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token')
  if (to.name !== 'Login' && !isAuthenticated) {
    next({ name: 'Login' })
  } else {
    next()
  }
})

处理登出功能

在需要的地方添加登出方法,清除本地存储的令牌并重定向到登录页。

methods: {
  logout() {
    localStorage.removeItem('token')
    this.$router.push('/login')
  }
}

后端接口实现示例

Node.js Express后端处理登录请求的示例代码。

const express = require('express')
const jwt = require('jsonwebtoken')
const app = express()

app.post('/api/login', (req, res) => {
  // 验证用户名和密码
  const token = jwt.sign({ userId: 123 }, 'your-secret-key', { expiresIn: '1h' })
  res.json({ token })
})

安全注意事项

确保使用HTTPS协议传输敏感数据,密码应当加密存储,JWT令牌设置合理的过期时间,考虑实现刷新令牌机制。

vue怎么实现登录功能

前端应对用户输入进行基本验证,后端必须对所有输入数据进行严格校验,防止SQL注入等攻击。敏感操作应当要求重新认证。

标签: 功能vue
分享给朋友:

相关文章

vue前端实现搜索

vue前端实现搜索

实现搜索功能的基本方法 在Vue中实现搜索功能通常涉及以下几个关键步骤,结合数据绑定、计算属性和方法调用来动态过滤和显示结果。 数据绑定与输入处理 使用v-model双向绑定搜索输入框的值,监听用户…

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础 Sw…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue 实现打印

vue 实现打印

Vue 实现打印功能的方法 在Vue项目中实现打印功能,可以通过以下几种方式实现: 使用window.print()方法 通过调用浏览器的原生打印API实现基础打印功能,适用于简单内容打印。 //…

vue实现tabbar

vue实现tabbar

Vue 实现 TabBar 的方法 使用 Vue Router 实现基础 TabBar 安装 Vue Router 依赖: npm install vue-router 创建路由配置文件(route…