ホームページ > 記事 > ウェブフロントエンド > Vueとサーバー間の通信の分析: ログイン認証の実装方法
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');Login.vue コンポーネントでは、ログインに成功した後にストアを呼び出します。ログイン メソッドは次のとおりです。ログインステータスを true に設定し、ページにジャンプするために使用されます。
<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 サイトの他の関連記事を参照してください。