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

JavaScript-Entwurfsmuster, Proxy-Muster lernen

Inhaltsverzeichnis Überblick Durchführung Schutz-...

Allgemeine Funktionen der MySQL-Grundlagen

Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...

Eine Untersuchung des JS-Operators im Problem

Die Sache ist: Jeder kennt „Speicherlecks“. Es gi...

30 Tipps zum Schreiben von HTML-Code

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

Javascript zum Umschalten durch Klicken auf das Bild

Durch Klicken Bilder zu wechseln, ist im Leben ei...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Die Vorteile von Div+CSS und Web-Standardseiten

Das Div-Element wird verwendet, um Struktur und Hi...

Verwenden von CSS3 zum Implementieren eines Schriftfarbverlaufs

Beim Verwenden von Animation.css habe ich festges...

Ubuntu führt regelmäßig Beispielcode eines Python-Skripts aus

Originallink: https://vien.tech/article/157 Vorwo...

So verwenden Sie html2canvas, um HTML-Code in Bilder umzuwandeln

Konvertieren Sie Code in ein Bild mit html2canvas...

Vue realisiert die Bildschirmanpassung von Großbildschirmseiten

In diesem Artikel wird der spezifische Code von V...