add login fluxo
This commit is contained in:
@@ -4,14 +4,15 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "cross-env NODE_ENV=development vite",
|
||||||
"build": "vite build",
|
"build": "cross-env NODE_ENV=production vite build",
|
||||||
"preview": "vite preview"
|
"preview": "cross-env NODE_ENV=production vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@quasar/extras": "1.17.0",
|
"@quasar/extras": "1.17.0",
|
||||||
"@vee-validate/zod": "4.15.1",
|
"@vee-validate/zod": "4.15.1",
|
||||||
"axios": "1.11.0",
|
"axios": "1.11.0",
|
||||||
|
"cross-env": "10.0.0",
|
||||||
"dayjs": "1.11.13",
|
"dayjs": "1.11.13",
|
||||||
"js-cookie": "3.0.5",
|
"js-cookie": "3.0.5",
|
||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
|
|||||||
18
src/config/axios.js
Normal file
18
src/config/axios.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
|
||||||
|
export const API = axios.create({
|
||||||
|
baseURL:
|
||||||
|
process.env.NODE_ENV === "development"
|
||||||
|
? "https://api.clipperia.com.br"
|
||||||
|
: "http://nestjs:3000",
|
||||||
|
});
|
||||||
|
|
||||||
|
API.interceptors.request.use((config) => {
|
||||||
|
const token = localStorage.getItem("token");
|
||||||
|
|
||||||
|
if (token) {
|
||||||
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return config;
|
||||||
|
});
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
<div class="q-pa-md">
|
<div class="q-pa-md">
|
||||||
<q-form @submit.prevent="handleLogin" class="q-mt-lg">
|
<q-form @submit.prevent="handleLogin" class="q-mt-lg">
|
||||||
<q-input
|
<q-input
|
||||||
v-model="email"
|
v-model="username"
|
||||||
type="email"
|
type="text"
|
||||||
label="E-mail"
|
label="Username"
|
||||||
lazy-rules
|
lazy-rules
|
||||||
:rules="[(val) => !!val || 'Campo obrigatório']"
|
:rules="[(val) => !!val || 'Campo obrigatório']"
|
||||||
class="q-mb-md"
|
class="q-mb-md"
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
filled
|
filled
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="mail" />
|
<q-icon name="person" />
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
@@ -79,6 +79,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Button from "@components/Button";
|
import Button from "@components/Button";
|
||||||
|
import { API } from "@config/axios";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "LoginView",
|
name: "LoginView",
|
||||||
@@ -88,7 +89,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
leftDrawerOpen: true,
|
leftDrawerOpen: true,
|
||||||
email: "",
|
username: "",
|
||||||
password: "",
|
password: "",
|
||||||
showPassword: false,
|
showPassword: false,
|
||||||
error: "",
|
error: "",
|
||||||
@@ -96,28 +97,32 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleLogin() {
|
async handleLogin() {
|
||||||
this.error = "";
|
if (!this.username || !this.password) {
|
||||||
|
|
||||||
if (!this.email || !this.password) {
|
|
||||||
this.error = "Por favor, preencha todos os campos";
|
this.error = "Por favor, preencha todos os campos";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loading = true;
|
try {
|
||||||
|
this.loading = true;
|
||||||
|
|
||||||
// setTimeout(() => {
|
const form = new FormData();
|
||||||
// try {
|
|
||||||
// localStorage.setItem("auth_token", "dummy_token");
|
|
||||||
|
|
||||||
// const redirectPath = this.$route.query.redirect || "/";
|
form.append("username", this.username);
|
||||||
// this.$router.push(redirectPath);
|
form.append("password", this.password);
|
||||||
// } catch (err) {
|
|
||||||
// this.error = err.message || "Erro ao fazer login. Tente novamente.";
|
const { data } = API.post("/auth/login", form, {
|
||||||
// } finally {
|
headers: {
|
||||||
// this.loading = false;
|
"Content-Type": "multipart/form-data",
|
||||||
// }
|
},
|
||||||
// }, 1000);
|
});
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
} finally {
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ export default defineConfig({
|
|||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
"@": path.resolve(__dirname, "src/"),
|
"@": path.resolve(__dirname, "src/"),
|
||||||
|
"@config": path.resolve(__dirname, "src/config/"),
|
||||||
"@assets": path.resolve(__dirname, "src/assets/"),
|
"@assets": path.resolve(__dirname, "src/assets/"),
|
||||||
"@components": path.resolve(__dirname, "src/components/"),
|
"@components": path.resolve(__dirname, "src/components/"),
|
||||||
"@utils": path.resolve(__dirname, "src/utils/"),
|
"@utils": path.resolve(__dirname, "src/utils/"),
|
||||||
|
|||||||
Reference in New Issue
Block a user