большая разработка аутентификации

This commit is contained in:
2023-03-02 11:46:14 +10:00
parent 0aae5b6558
commit 687db4e4b1
129 changed files with 2282 additions and 646 deletions

View File

@@ -0,0 +1,74 @@
<?php
declare(strict_types=1);
namespace mirzaev\site\account\controllers;
// Файлы проекта
use mirzaev\site\account\controllers\core,
mirzaev\site\account\models\generators\password,
mirzaev\site\account\models\invite;
/**
* Контроллер API
*
* @package mirzaev\site\account\controllers
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
*/
final class api extends core
{
/**
* Проверить существование
*
* @param array $parameters Параметры запроса
*
* @return string JSON с параметром exist
*/
public function invite_verify(array $parameters = []): string
{
// Инициализация буфера ответа
$return = ['errors' => &$this->errors];
// Запрос проверки на существование приглашения
$invite = invite::read($parameters['key'], $this->errors['account']);
$return['exist'] = isset($invite);
if ($parameters['from'] == 1) $return['from'] = ['login' => 'mirzaev'] ?? $invite->from();
// Запись заголовка ответа
header('Content-Type: application/json');
return json_encode($return);
}
/**
* Сгенерировать классический пароль
*
* @param array $parameters Параметры запроса
*
* @return string JSON с параметром password
*/
public function password_classic(array $parameters = []): string
{
// Запись заголовка ответа
header('Content-Type: application/json');
return json_encode(['password' => password::classic((int) $parameters['length'], $this->errors), 'errors' => $this->errors]);
}
/**
* Сгенерировать мнемонический пароль
*
* @param array $parameters Параметры запроса
*
* @return string JSON с параметром password
*/
public function password_mnemonic(array $parameters = []): string
{
// Запись заголовка ответа
header('Content-Type: application/json');
return json_encode(['password' => password::mnemonic((int) $parameters['length'], $this->errors), 'errors' => $this->errors]);
}
}