diff --git a/src/assets/sass/variables.sass b/src/assets/sass/variables.sass
index bc5089d..19e65c6 100644
--- a/src/assets/sass/variables.sass
+++ b/src/assets/sass/variables.sass
@@ -33,3 +33,4 @@
--btn-light-green-color: rgba(60, 217, 75, 0.2)
--border-light-grey-color-1: rgba(211, 212, 220, 0.5)
--bg-white-color-0: rgba(255, 255, 255, 0.3)
+ --border-red-color: #ff6565
diff --git a/src/components/TheHeader.vue b/src/components/TheHeader.vue
index b0732f7..e3d4e72 100644
--- a/src/components/TheHeader.vue
+++ b/src/components/TheHeader.vue
@@ -36,7 +36,7 @@ export default {
},
methods: {
logout() {
- localStorage.clear();
+ localStorage.clear("");
this.$router.push("/login");
},
},
diff --git a/src/pages/login/TheLogin.vue b/src/pages/login/TheLogin.vue
index ebc9183..f10f99d 100644
--- a/src/pages/login/TheLogin.vue
+++ b/src/pages/login/TheLogin.vue
@@ -11,11 +11,20 @@
.flex.flex-col.gap-y-5
.flex.flex-col.gap-y-6px
.flex.non-italic.font-semibold.text-xss Логин
- base-input.h-12.font-medium(v-model:value="user.username", type="text", placeholder="Введите ваш логин")
+ base-input.h-12.font-medium(
+ :style="{borderColor: !this.authorized ? this.redColor : ''}"
+ v-model:value="user.username"
+ type="text"
+ placeholder="Введите ваш логин")
.flex.flex-col.gap-y-6px.relative
.flex.non-italic.font-semibold.text-xss Пароль
- base-input.h-12(v-model:value="user.password", :type="changeType", placeholder="Введите ваш пароль")
+ base-input.h-12(
+ :style="{borderColor: this.authorized ? '' : this.redColor}"
+ v-model:value="user.password"
+ :type="changeType"
+ placeholder="Введите ваш пароль")
img.absolute.z-10.right-4.bottom-14px.cursor-pointer(:src="changeIcon", alt="eyePassword", @click="changeView")
+ span.font-medium(:style="{color: this.redColor}", v-show="!authorized") Неверный логин или пароль
.flex.items-center.gap-x-11px
input.w-4.h-4.checkbox.cursor-pointer(@click="persist", type="checkbox")
.flex.non-italic.font-medium.base Запомнить меня
@@ -43,7 +52,9 @@ export default {
hidePassword: hidePasswordIcon,
loginBackground,
logoMark,
+ authorized: true,
user: { username: "", password: "" },
+ redColor: "var(--border-red-color)",
};
},
computed: {
@@ -61,6 +72,7 @@ export default {
changeView() {
this.isView = !this.isView;
},
+
persist() {
localStorage.username = this.user.username;
localStorage.password = this.user.password;
@@ -72,10 +84,20 @@ export default {
body: JSON.stringify(this.user),
};
fetch("http://45.84.227.122:8080/auth/jwt/create/", requestOptions)
- .then((result) => result.json())
+ .then((result) => {
+ if (result.status === 200) {
+ return result.json();
+ } else {
+ return (this.authorized = false);
+ }
+ })
.then((token) => {
- localStorage.setItem("tokenAccess", token.access);
- this.$router.push("/");
+ if (token) {
+ localStorage.setItem("tokenAccess", token.access);
+ this.$router.push("/");
+ } else {
+ this.$router.push("/login");
+ }
});
},
},
diff --git a/src/pages/login/TheLoginCopy.vue b/src/pages/login/TheLoginCopy.vue
new file mode 100644
index 0000000..29c7f7a
--- /dev/null
+++ b/src/pages/login/TheLoginCopy.vue
@@ -0,0 +1,138 @@
+
+ .login-wrapper.flex
+ .left-col.flex.flex-col.items-center
+ .logo-wrapper.absolute.left-12.top-12
+ img(:src="logoMark")
+ .login-panel.flex.flex-col.justify-center.gap-y-10
+ .flex.flex-col.gap-y-2
+ .text-welcome.flex.not-italic.font-bold.text-5xl Добро пожаловать!
+ .text-under.flex.not-italic.font-medium.text-base(
+ :style="{color: this.underTextColor}") Очень рады вас видеть. Войдите в аккаунт, чтобы начать пользоваться сервисом «Астра».
+ .flex.flex-col.gap-y-5
+ .flex.flex-col.gap-y-6px
+ .flex.non-italic.font-semibold.text-xss Логин
+ base-input.h-12.font-medium(
+ :style="{borderColor: !this.authorized ? this.borderColor : ''}"
+ v-model:value="user.username"
+ type="text"
+ placeholder="Введите ваш логин")
+ .flex.flex-col.gap-y-6px.relative
+ .flex.non-italic.font-semibold.text-xss Пароль
+ base-input.h-12(
+ :style="{borderColor: this.authorized ? '' : this.borderColor}"
+ v-model:value="user.password"
+ :type="changeType"
+ placeholder="Введите ваш пароль")
+ img.absolute.z-10.right-4.bottom-14px.cursor-pointer(:src="changeIcon", alt="eyePassword", @click="changeView")
+ span.font-medium(:style="{color: this.borderColor}", v-show="!authorized") Неверный логин или пароль
+ .flex.items-center.gap-x-11px
+ input.w-4.h-4.checkbox.cursor-pointer(@click="persist", type="checkbox")
+ .flex.non-italic.font-medium.base Запомнить меня
+ base-button.font-semibold(:disabled="disabledButton", :size="48", @click="login") Войти в аккаунт
+ .absolute.left-12.bottom-12 2022 © Астра
+ .right-col.flex.items-center.justify-center.relative
+
+
+
+
+