基于SpringBoot和Vue3的博客平台的用户注册与登录功能实现

目录
  • 1. 后端Spring Boot实现
    • 1.1 创建Spring Boot项目
    • 1.2 配置application.yml
    • 1.3 实现后端API
      • 1.3.1 创建User实体类
      • 1.3.2 创建UserMapper接口
      • 1.3.3 创建UserService接口及实现
  • 2. 前端Vue3实现
    • 2.1 创建Vue3项目
    • 2.2 实现注册页面组件
    • 2.3 实现登录页面组件
    • 2.4 使用Vue Router配置路由
    • 2.5 实现登录状态管理

本教程将指导您如何使用Spring Boot和Vue3实现用户注册与登录功能。我们将使用Spring Boot作为后端框架,Vue3作为前端框架,同时使用MySQL作为数据库。

1. 后端Spring Boot实现

首先,我们需要创建一个Spring Boot项目,并配置所需的依赖。

1.1 创建Spring Boot项目

通过Spring Initializr或者IDEA创建一个新的Spring Boot项目,选择以下依赖:

  • Web
  • MyBatis
  • MySQL

1.2 配置application.yml

配置数据库连接信息、MyBatis配置等。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
    username: your_username
    password: your_password
  mybatis:
    mapper-locations: classpath:mapper/*.xml
    type-aliases-package: com.example.demo.entity
server:
  port: 8080

1.3 实现后端API

创建实体类、Mapper接口、Service接口及实现、Controller类。

1.3.1 创建User实体类

public class User {
    private Integer id;
    private String username;
    private String password;

    // Getter and Setter methods
}

1.3.2 创建UserMapper接口

@Mapper
public interface UserMapper {
    User findByUsername(String username);
    void insert(User user);
}

1.3.3 创建UserService接口及实现

public interface UserService {
    User findByUsername(String username);
    void register(User user);
}

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User findByUsername(String username) {
        return userMapper.findByUsername(username);
    }

    @Override
    public void register(User user) {
        userMapper.insert(user);
    }
}

2. 前端Vue3实现

接下来,我们将使用Vue3实现前端部分。

2.1 创建Vue3项目

使用Vue CLI创建一个Vue3项目,并安装Element Plus、Axios等插件。

vue create my-project
cd my-project
vue add element-plus
npm install axios

2.2 实现注册页面组件

创建一个名为Register.vue的新组件,并添加以下内容:

<template>
  <el-form ref="form" :model="form" label-width="80px">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <el-form-item label="密码" prop="password">
      <el-input v-model="form.password" show-password></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm('form')">注册</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import { reactive } from "vue";
import axios from "axios";

export default {
  setup() {
    const form = reactive({ username: "", password: "" });

    const submitForm = async () => {
      try {
        await axios.post("/api/user/register", form);
        alert("注册成功");
      } catch (error) {
        alert("注册失败");
      }
    };

    return { form, submitForm };
  },
};
</script>

2.3 实现登录页面组件

创建一个名为Login.vue的新组件,并添加以下内容:

<template>
  <el-form ref="form" :model="form" label-width="80px">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <el-form-item label="密码" prop="password">
      <el-input v-model="form.password" show-password></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm('form')">登录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import { reactive } from "vue";
import axios from "axios";

export default {
  setup() {
    const form = reactive({ username: "", password: "" });

    const submitForm = async () => {
      try {
        const response = await axios.post("/api/user/login", form);
        if (response.data.success) {
          alert("登录成功");
          // 保存登录状态
        } else {
          alert("登录失败");
        }
      } catch (error) {
        alert("登录失败");
      }
    };

    return { form, submitForm };
  },
};
</script>

2.4 使用Vue Router配置路由

安装Vue Router并配置路由:

vue add router

src/router/index.js中添加注册和登录组件的路由:

import { createRouter, createWebHashHistory } from "vue-router";
import Register from "../views/Register.vue";
import Login from "../views/Login.vue";

const routes = [
  {
    path: "/register",
    name: "Register",
    component: Register,
  },
  {
    path: "/login",
    name: "Login",
    component: Login,
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

export default router;

现在,您可以在浏览器中通过访问/register和/login路由来查看注册和登录页面。

至此,您已经完成了基于Spring Boot和Vue3的用户注册与登录功能的实现。这个教

程仅作为一个简单示例,实际项目中可能还需要加入表单验证、错误处理、用户权限管理等功能。

接下来,我们将实现一个简单的登录状态管理。

2.5 实现登录状态管理

src目录下创建一个名为store.js的文件,用于管理登录状态:

import { reactive } from "vue";

const state = reactive({
  user: null,
});

const setUser = (user) => {
  state.user = user;
};

const clearUser = () => {
  state.user = null;
};

export default {
  state,
  setUser,
  clearUser,
};

在登录页面组件中,将用户信息保存到store.js

// 在Login.vue中导入store
import store from "../store";

// ...

const submitForm = async () => {
  try {
    const response = await axios.post("/api/user/login", form);
    if (response.data.success) {
      alert("登录成功");
      store.setUser(response.data.data);
      // 跳转到首页或其他页面
    } else {
      alert("登录失败");
    }
  } catch (error) {
    alert("登录失败");
  }
};

// ...

现在,您可以在其他组件中访问store.state.user来获取登录用户的信息。如果user为null,则表示用户尚未登录。

这是一个非常简单的登录状态管理实现。在实际项目中,您可以考虑使用更为复杂的状态管理库,如Vuex,以更好地管理应用程序的状态。

至此,您已经学会了如何使用Spring Boot和Vue3实现用户注册与登录功能,并简单实现了登录状态管理。希望本教程能对您的项目有所帮助!

到此这篇关于基于Spring Boot和Vue3的博客平台的用户注册与登录功能实现的文章就介绍到这了,更多相关Spring Boot Vue3文平台用户登录与注册内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot+Shiro记录用户登录信息并获取当前登录用户信息的实现代码

    由于最近做项目需要,在用户登陆后有一个功能是需要用户的信息,进行写入数据库的操作.但是目前还用不到Shiro的高级权限,只为了简单获取用户信息,自己整合了一个只记录用户,获取用户信息的功能. 导入Shiro依赖 <!-- Shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version

  • SpringBoot登录用户权限拦截器

    1. 创建自定义拦截器类并实现 HandlerInterceptor 接口 package com.xgf.online_mall.interceptor; import com.xgf.online_mall.system.domain.User; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.servlet.Ha

  • Springboot+SpringSecurity+JWT实现用户登录和权限认证示例

    如今,互联网项目对于安全的要求越来越严格,这就是对后端开发提出了更多的要求,目前比较成熟的几种大家比较熟悉的模式,像RBAC 基于角色权限的验证,shiro框架专门用于处理权限方面的,另一个比较流行的后端框架是Spring-Security,该框架提供了一整套比较成熟,也很完整的机制用于处理各类场景下的可以基于权限,资源路径,以及授权方面的解决方案,部分模块支持定制化,而且在和oauth2.0进行了很好的无缝连接,在移动互联网的授权认证方面有很强的优势,具体的使用大家可以结合自己的业务场景进行选

  • springboot+thymeleaf+druid+mybatis 多模块实现用户登录功能

    项目代码:https://github.com/bruceq/supermarket 项目结构: 依赖关系: common:公共层,无依赖 dao:数据层,依赖common service:服务层,依赖dao.common web:应用层,依赖dao.common.service 注:启动类在web层中 父依赖pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/

  • SpringBoot结合JWT实现用户登录、注册、鉴权

    目录 一.用户注册与登录 二.用户鉴权 用户登录.注册及鉴权是我们基本所有系统必备的,也是很核心重要的一块,这一块的安全性等都比较重要,实现的方案其实也有几种,从以前的cookie+session的方案,到现在常用的jwt的方案,这篇文章就讲讲目前在公司中最常用的jwt方案如何实现. 一.用户注册与登录 完成用户注册与登录有个核心点就是密码的加密与验证,我们目前比较常用的方案是密码+盐再采用MD5加密的方案, 盐的方式一般可以在application.yml里面写死,但安全性相对较差,还有就是通

  • Vue+SpringBoot开发V部落博客管理平台

    V部落是一个多用户博客管理平台,采用Vue+SpringBoot开发. 演示地址: http://45.77.146.32:8081/index.html 项目地址: https://github.com/lenve/VBlog 登陆页面 文章列表 发表文章 用户管理 栏目管理 数据统计 技术栈 后端技术栈 后端主要采用了: 1.SpringBoot 2.SpringSecurity 3.MyBatis 4.部分接口遵循Restful风格 5.MySQL 前端技术栈 前端主要采用了: 1.Vue

  • 基于CakePHP实现的简单博客系统实例

    本文实例讲述了基于CakePHP实现的简单博客系统.分享给大家供大家参考.具体实现方法如下: PostsController.php文件: <?php class PostsController extends AppController { public $helpers = array('Html', 'Form', 'Session'); public $components = array('Session'); public function index() { $this->set

  • 在Ubuntu系统上安装Ghost博客平台的教程

    今天我们将会在Ubuntu Server 14.04 LTS (Trusty)上安装一个博客平台Ghost. Ghost是一款设计优美的发布平台,很容易使用且对任何人都免费.它是免费的开源软件(FOSS),它的源码在Github上.截至2015年1月(LCTT 译注:原文为2014,应为2015),它的界面很简单还有分析面v板.编辑使用的是很便利的分屏显示. 因此有了这篇步骤明确的在Ubuntu Server上安装Ghost的教程: 1. 升级Ubuntu 第一步是运行Ubuntu软件升级并安装

  • 基于Python爬取51cto博客页面信息过程解析

    介绍 提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用了爬取51cto博客网站信息为案例,这里以我的博客页面为教程,编写的Python代码! 实验环境 1.安装Python 3.7 2.安装requests, bs4模块 实验步骤 1.安装Python3.7环境 2.安装requests,bs4 模块 打开cmd,输入:pip install requests -i https://pypi.tuna.tsi

  • 基于Node.js搭建hexo博客过程详解

    一.安装新版本的nodejs和npm 安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 二.安装hexo note: 参考github,不要去其官网 安装Hexo npm install hexo-cli -g Setup your blog hexo init blemesh cd blemesh 安装Cactus主题,众多开源主题中比较简洁的一个: 主题页 Cactus页 git clone https://github.com/probber

  • 基于JQuery的抓取博客园首页RSS的代码

    效果图:实现代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http

  • Nuxt.js实现一个SSR的前端博客的示例代码

    为什么要用Nuxt.js 公司现有的项目只有落地页是通过前端本身server读取pug文件进行服务端渲染的,当然是为了首屏加载速度以及SEO.Nuxt.js 是一个基于Vue.js的通用应用框架,预设了利用Vue.js开发服务端渲染的应用所需要的各种配置,只需要安装官方文档的要求进行开发,就可以很好的解决SSR的问题.我们以一个简单的博客为例,来实践一下Nuxt.js. 项目介绍 当前基于Nuxt.js的简化版博客,包括注册.登录.文章列表页面.文章详情页.以及用户列表页等几个页面,用户信息使用

  • 六个步骤,从零开始教你搭建基于WordPress的个人博客

    目录 摘要:WordPress是使用PHP语言开发的博客平台,是免费开源的.用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,也可以把WordPress当作一个内容管理系统(CMS)来使用. 一.购买云服务器和域名 可以参考以下博客进行购买,以华为云为例,服务商可以自选.如果已有云服务器和域名,直接进行第二步操作. ▶ 云服务器和域名的购买-华为云 二.远程连接云服务器 可以参考以下博客进行远程连接服务器,也可以用其他办法连接.连接以后进行第三步操作. ▶ Xftp和Xshel

  • 基于PHP实现个人博客网站

    目录 一.运行展示 二.功能说明 三.核心代码讲解 1.创建数据库 2.初始化数据 3.登录验证 4.用户注册 5.发表博客 6.更新博客 7.删除博客 8.发表评论 9.修改密码 10.修改昵称 11.管理员删除用户 四.运行环境 五.运行说明 一.运行展示 二.功能说明 未登录用户: 仅可以浏览所有博客的内容. 已登录用户: 浏览所有博客的内容: 发表博客: 删除自己的博客: 修改自己的博客: 在任一博客下评论: 修改昵称和密码. 管理员: 可以执行普通用户的所有功能: 修改任一博客的内容:

  • PHP多用户博客系统分析[想做多用户博客的朋友,需要了解]第1/3页

    01,LxBlog 博客系统 这是phpwind推出的博客系统,值得推荐吧,国内推出php多用户博客的不多,如果你英文不好,就只能用这个系统了! PHPWind 博客系统 是一套基于php+mysql 数据库平台架构的多用户博客系统,该系统融合了Blog的最新元素,拥有强大的个人主页系统,独立的二级域名功能,灵活的用户模版系统,丰富的朋友圈和个性相册功能. 网站统筹化 1. 使用论坛整合接口,让博客论坛容为一体 在论坛里可以设置用户组权限,让特定的用户组有权限使用博客个人主页系统 用户在论坛里浏

随机推荐