Springboot+VUE zur Realisierung von Anmeldung und Registrierung

Springboot+VUE zur Realisierung von Anmeldung und Registrierung

In diesem Artikelbeispiel wird der spezifische Code von Springboot + VUE zur Implementierung von Anmeldung und Registrierung zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

1. springBoot

Erstellen Sie ein SpringBoot-Projekt

Es ist in drei Pakete unterteilt, nämlich Controller-, Service-, DAO- und XML-Dateien im Ressourcenverzeichnis.

UserController.java

Paket springbootmybatis.controller;

importiere org.springframework.web.bind.annotation.CrossOrigin;
importiere org.springframework.web.bind.annotation.PostMapping;
importiere org.springframework.web.bind.annotation.RequestBody;
importiere org.springframework.web.bind.annotation.RestController;
importiere springbootmybatis.pojo.User;
importiere springbootmybatis.service.UserService;

importiere javax.annotation.Resource;


@RestController
öffentliche Klasse UserController {
    @Ressource
    Benutzerdienst Benutzerdienst;

    @PostMapping("/registrieren/")
    @CrossOrigin("*")
    String-Register (@RequestBody Benutzer Benutzer) {
        System.out.println("Jemand hat eine Registrierung angefordert!");
        int res = userService.register(user.getAccount(), user.getPassword());
        wenn(res==1) {
            Rückgabewert "Registrierung erfolgreich";
        } anders {
            Rückgabewert: „Registrierung fehlgeschlagen“;
        }
    }

    @PostMapping("/login/")
    @CrossOrigin("*")
    String login(@RequestBody Benutzer Benutzer) {
        int res = userService.login(user.getAccount(), user.getPassword());
        wenn(res==1) {
            Rückgabewert: „Anmeldung erfolgreich“;
        } anders {
            Rückgabewert: „Anmeldung fehlgeschlagen“;
        }
    }
}

UserService.java

Paket springbootmybatis.service;

importiere org.springframework.stereotype.Service;
importiere springbootmybatis.dao.UserMapper;

importiere javax.annotation.Resource;

@Service
öffentliche Klasse UserService {
    @Ressource
    UserMapper BenutzerMapper;

    öffentliche int register(String Konto, String Passwort) {
        returniere userMapper.register(Konto, Passwort);
    }

    public int login(String Konto, String Passwort) {
        returniere userMapper.login(Konto, Passwort);
    }
}

User.java (ich habe das Lombok-Plugin installiert)

Paket springbootmybatis.pojo;

importiere lombok.Data;

@Daten
öffentliche Klasse Benutzer {
    privates String-Konto;
    privates String-Passwort;
}

UserMapper.java

Paket springbootmybatis.dao;

importiere org.apache.ibatis.annotations.Mapper;

@Mapper
öffentliche Schnittstelle UserMapper {
    int register(String-Konto, String-Passwort);

    int login(String-Konto, String-Passwort);
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE-Mapper
        ÖFFENTLICH "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="springbootmybatis.dao.UserMapper">

    <insert id="registrieren">
       in Benutzer (Konto, Passwort) Werte einfügen (#{Konto}, #{Passwort});
    </einfügen>

    <select id="login" resultType="Integer">
        Wählen Sie count(*) vom Benutzer, wobei Konto=#{Konto} und Passwort=#{Passwort};
    </Auswählen>
</mapper>

Backbone-Konfiguration

anwendung.yaml

Server-Port: 8000
Frühling:
  Datenquelle:
    Benutzername: root
    Passwort: 123456
    URL: jdbc:mysql://localhost:3306/community?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    Treiberklassenname: com.mysql.cj.jdbc.Driver
mybatis:
    Typ-Alias-Paket: springbootmybatis.pojo
    Mapper-Standorte: Klassenpfad:mybatis/mapper/*.xml
    Konfiguration:
      Map-Unterstrich-zu-Camel-Case: wahr

Die Datenbank muss eine entsprechende Tabelle erstellen

CREATE TABLE `Benutzer` (
  `Konto` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `Passwort` varchar(255) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2. Erstellen Sie ein VUE-Projekt

Installieren Sie Node, NPM und konfigurieren Sie Umgebungsvariablen.
Konfigurieren Sie das cnpm-Repository, um den Download zu beschleunigen.

npm i -g cnpm --registry=https://registry.npm.taobao.org

VUE installieren

npm i -g vue-cli

Initialisieren der Paketstruktur

vue init webpack-Projekt

Starten Sie ein Projekt

# Wechseln Sie in das Projektverzeichnis cd vue-01
# Kompilieren Sie npm install
# Starten Sie npm run dev

Passen Sie die Projektdatei entsprechend der folgenden Struktur an

APP.vue

<Vorlage>
  <div id="app">
    <Router-Ansicht/>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Name: "App"
}
</Skript>

<Stil>

</Stil>

willkommen.vue

<Vorlage>
  <div>
    <el-input v-model="account" placeholder="Bitte geben Sie Ihre Kontonummer ein"></el-input>
    <el-input v-model="password" placeholder="Bitte geben Sie Ihr Passwort ein" show-password></el-input>
    <el-button type="primary" @click="login">Anmelden</el-button>
    <el-button type="primary" @click="register">Registrieren</el-button>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Name: "Willkommen",
  Daten () {
    zurückkehren {
      Konto: '',
      Passwort: ''
    }
  },
  Methoden: {
    registrieren: Funktion () {
      dies.axios.post('/api/register/', {
        Konto: dieses.Konto,
        Passwort: dieses.Passwort
      }).dann(Funktion (Antwort) {
        console.log(Antwort);
      }).catch(Funktion (Fehler) {
        konsole.log(Fehler);
      });
      // dies.$router.push({Pfad:'/registry'});
    },
    login: Funktion () {
      dies.axios.post('/api/login/', {
        Konto: dieses.Konto,
        Passwort: dieses.Passwort
      }).dann(Funktion () {
        alert('Anmeldung erfolgreich');
      }).fangen(Funktion (e) {
        Warnung(en)
      })
      // dies.$router.push({Pfad: '/board'});
    }
  }
}
</Skript>

<Stilbereich>

</Stil>

Haupt-JS

// Die Vue-Build-Version, die mit dem Befehl „import“ geladen werden soll
// (nur Laufzeit oder Standalone) wurde in webpack.base.conf mit einem Alias ​​festgelegt.
Vue von „vue“ importieren
App aus „./App“ importieren
Router aus „./router“ importieren
importiere ElementUI von „element-ui“
importiere 'element-ui/lib/theme-chalk/index.css'
Axios von „Axios“ importieren
Importieren Sie VueAxios von „vue-axios“.

Vue.use(VueAxios, axios)
Vue.use(ElementUI)
Vue.config.productionTip = falsch

/* eslint-deaktivieren Sie no-new */
neuer Vue({
  el: '#app',
  Router,
  Komponenten: {App},
  Vorlage: '<App/>'
})

router/index.js

Vue von „vue“ importieren
Router von „vue-router“ importieren
Willkommen aus '@/components/welcome' importieren

Vue.use(Router)

exportiere standardmäßig einen neuen Router({
  Routen: [
    {
      Weg: '/',
      Name: "Willkommen",
      Komponente: Willkommen
    }
  ]
})

config/index.js

„streng verwenden“
// Vorlagenversion: 1.3.1
// siehe http://vuejs-templates.github.io/webpack für Dokumentation.

const Pfad = require('Pfad')

modul.exporte = {
  Entwickler: {

    // Pfade
    AssetsSubDirectory: "statisch",
    assetPublicPath: '/',
    Proxy-Tabelle: {
      '/api': {
        target: 'http://localhost:8000', //Domänenname der Backend-Schnittstelle// secure: false, //Wenn es sich um eine https-Schnittstelle handelt, müssen Sie diesen Parameter konfigurieren changeOrigin: true, //Wenn die Schnittstelle domänenübergreifend ist, müssen Sie diesen Parameter konfigurieren pathRewrite: {
          '^/api': '' //Pfad neu schreiben, wenn Ihre URL das API-Feld enthält, wie /api/v1/tenant,
          //Sie können den Pfad mit demselben Namen wie die Regel umschreiben, was bedeutet, dass Sie die API während der Entwicklung nicht hinzufügen müssen.}
      }
    },

    // Verschiedene Dev Server Einstellungen
    Host: 'localhost', // kann von process.env.HOST überschrieben werden
    Port: 8080, // kann durch process.env.PORT überschrieben werden, falls Port belegt ist, wird ein freier ermittelt
    autoOpenBrowser: false,
    errorOverlay: wahr,
    Benachrichtigung bei Fehlern: true,
    Umfrage: falsch, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-

    // Eslint Loader verwenden?
    // Wenn dies zutrifft, wird Ihr Code während der Bündelung linted und
    // Lint-Fehler und Warnungen werden in der Konsole angezeigt.
    useEslint: wahr,
    // Wenn wahr, werden Eslint-Fehler und -Warnungen auch im Fehler-Overlay angezeigt
    // im Browser.
    showEslintErrorsInOverlay: false,

    /**
     * Quellkarten
     */

    // https://webpack.js.org/configuration/devtool/#development
    devtool: "billiges-Modul-Eval-Source-Map",

    // Wenn Sie Probleme beim Debuggen von Vue-Dateien in Devtools haben,
    // setze dies auf „false“ – es *könnte* helfen
    // https://vue-loader.vuejs.org/en/options.html#cachebusting
    cacheBusting: wahr,

    cssSourceMap: wahr
  },

  bauen: {
    // Vorlage für index.html
    index: Pfad.auflösen(__dirname, '../dist/index.html'),

    // Pfade
    assetRoot: Pfad.resolve(__dirname, '../dist'),
    AssetsSubDirectory: "statisch",
    assetPublicPath: '/',

    /**
     * Quellkarten
     */

    productionSourceMap: wahr,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: "#Quellkarte",

    // Gzip ist standardmäßig deaktiviert, da viele beliebte statische Hosts wie
    // Surge oder Netlify haben alle statischen Assets bereits für Sie mit GZIP gepackt.
    // Bevor Sie den Wert auf „true“ setzen, stellen Sie Folgendes sicher:
    // npm install --save-dev Komprimierungs-Webpack-Plugin
    ProduktionGzip: false,
    Produktions-Gzip-Erweiterungen: ['js', 'css'],

    // Führen Sie den Build-Befehl mit einem zusätzlichen Argument aus, um
    // Zeigen Sie den Bundle-Analyzer-Bericht an, nachdem der Build abgeschlossen ist:
    // `npm run build --report`
    // Auf „true“ oder „false“ setzen, um es immer ein- oder auszuschalten
    bundleAnalyzerReport: process.env.npm_config_report
  }
} 

Geben Sie Ihr Konto und Ihr Passwort ein, um einfache Registrierungs- und Anmeldefunktionen zu implementieren.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Android verwendet OKhttp3 zur Implementierung der Anmelde- und Registrierungsfunktionen und Springboot zum Erstellen des detaillierten Backend-Prozesses
  • SpringBoot+Mybatis zum Implementieren von Beispielcode für Anmeldung und Registrierung
  • Lösungen für häufige Probleme bei der Anmeldung und Registrierung bei SpringBoot
  • Springboot kombiniert globale Ausnahmebehandlung zur Implementierung der Anmelde- und Registrierungsüberprüfung
  • SpringBoot implementiert ein einfaches Anmelde- und Registrierungsprojekt

<<:  Tutorial zur Installation von jdk1.8 auf Ubuntu14.04

>>:  So setzen Sie das Passwort zurück, wenn das Ubuntu 18.04-Serverpasswort vergessen oder manipuliert wurde

Artikel empfehlen

Lösung zur Schnittstellenverformung beim Einstellen der Frameset-Höhe

Derzeit habe ich ein Projekt erstellt, die Schnitt...

So verwenden Sie den Linux-Befehl tr

01. Befehlsübersicht Der Befehl tr kann Zeichen a...

Neue Funktionen in MySQL 8.0: Hash Join

Das MySQL-Entwicklungsteam hat am 14. Oktober 201...

Eine kurze Analyse zum Upgrade von PHP 5.4 auf 5.6 in CentOS 7

1. Überprüfen Sie die PHP-Version nach dem Aufruf...

Docker-Port-Mapping und externe Unzugänglichkeitsprobleme

Der Docker-Container stellt Dienste bereit und la...

30 Tipps zum Schreiben von HTML-Code

1. HTML-Tags immer schließen Im Quellcode der vor...

Vue-Anpassungsmethode für Großbildschirme

In diesem Artikelbeispiel wird der spezifische Co...

In der HTML-Tabelle wird nur der äußere Rand der Tabelle angezeigt

Ich möchte eine Frage stellen. Ich habe in Dreamw...

Erzielen Sie mit reinem CSS3 in wenigen einfachen Schritten einen 3D-Flip-Effekt

Als Pflichtkurs für Frontend-Entwickler kann CSS3...

So installieren Sie Postgres 12 + pgadmin im lokalen Docker (unterstützt Apple M1)

Inhaltsverzeichnis einführen Unterstützt Intel-CP...

Docker Swarm von der Bereitstellung bis zum grundlegenden Betrieb

Über Docker Swarm Docker Swarm besteht aus zwei T...