Дипломная работа: Автоматизация процесса взаимодействия с клиентами (CRM) на примере агенства недвижимости

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
101
components: {
HeaderTemplate,
NavigationDrawer
},
data () {
return {
//
}
},
methods: {
getDateTime() {
this.$store.dispatch('getDateTime')
.then(() => {
})
.catch(error => {console.log(error)})
}
},
beforeCreate() {
const token = localStorage.token;
if (token) {
this.$store.dispatch('chechAuthUser', token)
.then(() => {
//this.$router.push('/')
})
.catch(() => {this.$router.push('authorization')})
} else {
this.$router.push('authorization');
}
this.$store.dispatch('getDateTime')
.then(() => {
})
.catch(error => {console.log(error)})
}
}
</script>
Authorization.vue
<template>
<v-app id="inspire">
102
title>Авторизация</v-toolbar-title>
</v-toolbar>
icon="person" name="login" label="Логин"
type="text" v-model="login"></v-text-field>
icon="lock" name="password" label="Пароль"
type="password" v-model="password"></v-text-field>
</v-form>
</v-card-text>
<span style="color:red;">{{getError}}</span>
btn color="primary" @click="auth()">Авторизоваться</v-btn>
</v-card-actions>
</v-card>
</v-layout>
</v-container>
</v-content>
</v-app>
</template>
<script>
export default {
name: "Authorization",
data() {
return {
login: "test",
password: "123456"
}
},
computed: {
getError() {
return this.$store.getters.getError;
}
},
methods: {
auth: function() {
const user = {
login: this.login,
password: this.password
}
this.$store.dispatch('authUser', user)
.then(() => {
103
this.$router.push('/')
})
.catch(error => {console.log(error)})
}
}
}
</script>
Router.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import Authorization from './components/Authorization'
import Clients from './views/Clients'
import Objects from "./views/Objects";
import Object from "./views/Object";
import Leads from "./views/Leads";
import Lead from "./views/Lead";
import Tasks from "./views/Tasks";
Vue.use(Router);
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/authorization',
name: 'authorization',
component: Authorization,
meta: {ui: true}
},
{
path: '/',
name: 'home',
component: Home
},
{
path: '/clients',
component: Clients
},
{
path: '/object',
component: Objects
104
},
{
name: 'object',
path: '/object/:id',
component: Object
},
{
path: '/leads',
component: Leads
},
{
name: 'lead',
path: '/leads/:id',
component: Lead
},
{
path: '/tasks',
component: Tasks
}
]
})
AuthController.php
<?php
namespace controllers;
use classes\DBquery;
use core\Controller;
class AuthController extends Controller
{
public function Index()
{
$request = json_decode(file_get_contents('php://input'));
$login = $request->login;
$password = $request->password;
$db = new DBquery();
$params = [
":login" => $login,
":password" => $password
];
$query = $db->queryRow("SELECT * FROM ro_user WHERE login = :login AND password = :password",
$params);
105
if ($query == null) {
Send("Логин или пароль не найден");
} else {
$token = password_hash($this->generateToken($login, $password), PASSWORD_BCRYPT);
$db->update("UPDATE ro_user SET token = :token WHERE id = :id", [":token" => $token, ":id" =>
$query['id']]);
Send(["login" => $query['login'], "token" => $token]);
}
}
public function Check()
{
$request = json_decode(file_get_contents('php://input'));
$token = $request->token;
$db = new DBquery();
$params = [
":token" => $token
];
$query = $db->queryRow("SELECT * FROM ro_user WHERE token = :token", $params);
if ($query == null) {
echo json_encode("Время действия токена истекло");
} else {
$token = password_hash($this->generateToken($query['login'], $query['password']), PASSWORD_BCRYPT);
$db->update("UPDATE ro_user SET token = :token WHERE id = :id", [":token" => $token, ":id" =>
$query['id']]);
echo json_encode(["login" => $query['login'], "token" => $token]);
}
}
private function generateToken($login, $password) {
$time = new \DateTime();
$token = $login.$time->format("Y-m-d H:i:s").$password;
return $token;
}
}
Router.php
<?php
namespace classes;
class Router
{
Источник: https://baza.diplomsite.ru/previewfile/2068