Vue とサーバー間の通信の分析: ログイン認証の実装方法
はじめに:
フロントエンドとバックエンドの分離開発の普及に伴いモデル、フロントエンド開発に広く使用されている軽量の JavaScript フレームワークとしての Vue。 Vue はサーバーと通信してデータを取得し、認証を実行できます。この記事では、ログイン認証プロセスの実装方法と、対応するコード例を示します。
1. フロントエンド ログイン リクエストの送受信
Vue プロジェクトでは、ログインはユーザーとサーバー間の対話の重要な部分です。ユーザーがユーザー名とパスワードを入力すると、バックエンド インターフェイスを呼び出してログイン要求が送信され、サーバーはユーザーの情報を検証して、対応する結果を返します。
コード例:
まず、Vue プロジェクトに新しいログイン コンポーネント Login.vue を作成します:
<template> <div class="login-form"> <input type="text" v-model="username" placeholder="请输入用户名" /> <input type="password" v-model="password" placeholder="请输入密码" /> <button @click="login">登录</button> </div> </template> <script> export default { data() { return { username: '', password: '', }; }, methods: { login() { // 发送登录请求 axios.post('/api/login', { username: this.username, password: this.password, }) .then((response) => { console.log(response.data); // 处理登录成功的逻辑 }) .catch((error) => { console.log(error.message); // 处理登录失败的逻辑 }); }, }, }; </script>
上記のコードでは、POST リクエストを 経由で
に送信しました。 axios ライブラリ /api/login
2. サーバー側のログイン検証
コード例:
const express = require('express'); const router = express.Router(); // 处理登录请求 router.post('/api/login', (req, res) => { const { username, password } = req.body; // 在这里进行登录验证的逻辑 if (username === 'admin' && password === '123456') { res.json({ success: true, message: '登录成功' }); } else { res.status(401).json({ success: false, message: '用户名或密码错误' }); } }); module.exports = router;
上記のコードでは、Express ライブラリを通じてルーティング オブジェクト ルーターを作成し、
/api/login インターフェイスは、POST リクエストを受信するために使用されます。このインターフェイスでは、ユーザー名とパスワードに基づいてログイン検証を実行できます。検証が成功した場合は成功応答を返し、それ以外の場合は適切なエラー メッセージを含むエラー応答を返します。
3. フロントエンド ログイン成功後の処理
コード例:
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store({ state: { isLoggedIn: false, // 默认未登录 }, mutations: { login(state) { state.isLoggedIn = true; }, logout(state) { state.isLoggedIn = false; }, }, }); Vue.config.productionTip = false; new Vue({ store, render: (h) => h(App), }).$mount('#app');
<script> import { mapMutations } from 'vuex'; export default { // ... methods: { ...mapMutations(['login']), // 映射login方法为组件方法 login() { axios.post('/api/login', { username: this.username, password: this.password, }) .then((response) => { console.log(response.data); if (response.data.success) { this.login(); // 登录成功后调用store的login方法 // 处理登录成功的逻辑 } else { // 处理登录失败的逻辑 } }) .catch((error) => { console.log(error.message); // 处理登录失败的逻辑 }); }, }, }; </script>
computed: { isLoggedIn() { return this.$store.state.isLoggedIn; }, },
最後に記載:
以上がVueとサーバー間の通信の分析: ログイン認証の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。