Страница входа для аутентификации Nuxt
Для того чтобы начать взаимодействовать с библиотекой аутентификации, нам потребуется, конечно, страница входа на сайт, где будет форма входа. В этой форме мы сможем ввести логин и пароль пользователя, под которым хотим войти. Этот пользователь будет аутентифицироваться через pages/login.vue
, где и будет находиться форма входа.
Описание формы
Давайте разберёмся, что здесь у нас есть. В первую очередь, у нас есть форма.
<template>
<div class="login">
<a-form class="login-form" @submit.prevent="login">
<a-form-item>
<a-input
v-model:value="username"
placeholder="Имя пользователя"
autocomplete="off"
/>
</a-form-item>
<a-form-item>
<a-input-password
v-model:value="password"
placeholder="Пароль"
autocomplete="off"
/>
</a-form-item>
<a-form-item>
<a-button type="primary" html-type="submit" class="login-form-button">
Войти
</a-button>
</a-form-item>
</a-form>
</div>
</template>
<style lang="scss" scoped>
.login-form {
max-width: 300px;
margin: 0 auto;
padding: 20px;
}
.login-form-button {
width: 100%;
}
</style>
Для её создания используется библиотека ant-design-vue
, но по сути это обычная HTML-форма, которая отображается на странице. Вы можете использовать любую другую библиотеку для формирования формы или вообще написать её на чистом HTML. В данном случае это не имеет большого значения.
Итак, у нас есть форма с двумя текстовыми полями: это логин (username) и пароль (password), которые пользователь вводит. Также имеется кнопка отправки, которая передаёт данные на сервер. Здесь применяются небольшие CSS-стили для оформления этой формы.
Взаимодействие с сервером
<script setup>
import { ref } from "vue";
const username = ref("");
const password = ref("");
definePageMeta({
layout: false
});
async function login() {
const response = await useFetch("/api/auth/login", {
method: "POST",
body: {
username: username.value,
password: password.value
}
});
console.log(response);
}
</script>
У нас есть две переменные: username
и password
, которые связаны с текстовыми полями. Также отключён макет, чтобы не подгружать ничего лишнего для этой формы. Единственный метод, который используется, — это метод login
, который позволит пользователю взаимодействовать с сервером и получать ответ.
Все, что мы делаем, — это отправляем на сервер введённые логин и пароль, а затем обрабатываем ответ, который вернётся от сервера.
Итог
Данная форма является заготовкой для работы с системой аутентификации. Она выглядит просто, но обеспечивает базовую функциональность, необходимую для входа на сайт и дальнейшей обработки данных пользователя.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти