Compare commits
7 Commits
129c0c1264
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c1769326f | |||
| d6fa758482 | |||
| 27c240a714 | |||
| 44c7988429 | |||
| 19b02d7089 | |||
| cbd55cec2d | |||
| 913db80c30 |
76
README.md
76
README.md
@@ -1,3 +1,77 @@
|
|||||||
# test-php-rest-api-user
|
# test-php-rest-api-user
|
||||||
|
|
||||||
Тестовое задание REST API на PHP
|
**Тестовое задание REST API на PHP**
|
||||||
|
|
||||||
|
## Установка / Запуск
|
||||||
|
|
||||||
|
### Первый способ (простой)
|
||||||
|
1. Открыть корневую директорию сайта (в которой файл `installed`)
|
||||||
|
2. Открыть консоль в данной директории
|
||||||
|
3. Выполнить комманду `php -S 0.0.0.0:8888`
|
||||||
|
4. Теперь сайт доступен по адресу [http://localhost:8888](http://localhost:8888)
|
||||||
|
|
||||||
|
### Второй способ (сложнее)
|
||||||
|
1. Установить `nginx` и `php-fpm`
|
||||||
|
2. Поместить содержимое сайта в нужную директорию
|
||||||
|
3. Настроить **nginx** так, как этот делается для **Wordpress**
|
||||||
|
4. Теперь сайт доступен по адресу который указан в nginx (обычно это [http://localhost:80](http://localhost:80))
|
||||||
|
|
||||||
|
|
||||||
|
## Конфигурация
|
||||||
|
Все необходимое для настройки и конфигурации сайта находится в директории `config`
|
||||||
|
|
||||||
|
### `0000.root.php`
|
||||||
|
Содержит базовую информацию о сайте (не важную для API)
|
||||||
|
|
||||||
|
### `0001.db.php`
|
||||||
|
Содержит настройки подключения к Базе Данных
|
||||||
|
|
||||||
|
### `0005.user.php`
|
||||||
|
Содержит конфигурацию для работы с пользователями
|
||||||
|
|
||||||
|
|
||||||
|
## Документация API
|
||||||
|
|
||||||
|
### [Postman](https://www.postman.com/material-observer-62618807/workspace/public-data/collection/37579698-ff75f993-cc82-4704-aea4-612718b8a06b?action=share&creator=37579698)
|
||||||
|
|
||||||
|
### POST `/api/v1/createUser`
|
||||||
|
Создание пользователя
|
||||||
|
|
||||||
|
Параметр | Описание
|
||||||
|
--- | ---
|
||||||
|
login | Обязательное поле (1-32 символа)
|
||||||
|
password | Обязательное поле (от 8 символов)
|
||||||
|
|
||||||
|
|
||||||
|
### POST `/api/v1/authUser`
|
||||||
|
Авторизация и получение токена
|
||||||
|
|
||||||
|
Параметр | Описание
|
||||||
|
--- | ---
|
||||||
|
login | Обязательное поле (1-32 символа)
|
||||||
|
password | Обязательное поле (от 8 символов)
|
||||||
|
|
||||||
|
|
||||||
|
### GET `/api/v1/getUser`
|
||||||
|
Получение информации о пользователе
|
||||||
|
|
||||||
|
Параметр | Описание
|
||||||
|
--- | ---
|
||||||
|
login | Обязательное поле (1-32 символа)
|
||||||
|
|
||||||
|
|
||||||
|
### PATCH `/api/v1/updateUserInfo`
|
||||||
|
Обновление поля info у пользователя
|
||||||
|
|
||||||
|
Параметр | Описание
|
||||||
|
--- | ---
|
||||||
|
token | Обязательное поле (токен, который выдали при авторизации)
|
||||||
|
newInfo | Обязательное поле (без ограничений)
|
||||||
|
|
||||||
|
|
||||||
|
### DELETE `/api/v1/deleteUser`
|
||||||
|
Удаление пользователя
|
||||||
|
|
||||||
|
Параметр | Описание
|
||||||
|
--- | ---
|
||||||
|
token | Обязательное поле (токен, который выдали при авторизации)
|
||||||
|
|||||||
@@ -74,11 +74,11 @@
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
$until = time() + self::$tokenLifetime;
|
$until = time() + self::$tokenLifetime;
|
||||||
$hash = hash('sha256', $login.'|'.$password.'|'.$until.'|'.self::$secret);
|
$hash = hash('sha256', $login.'|'.$user->password.'|'.$until.'|'.self::$secret);
|
||||||
|
|
||||||
self::updateOnline($login);
|
self::updateOnline($login);
|
||||||
|
|
||||||
return implode('|', rtrim(strtr(base64_encode($login.'|'.$password.'|'.$until.'|'.$hash), '+/', '-_'), '='));
|
return rtrim(strtr(base64_encode($login.'|'.$user->password.'|'.$until.'|'.$hash), '+/', '-_'), '=');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get($login) {
|
public static function get($login) {
|
||||||
|
|||||||
@@ -15,7 +15,13 @@
|
|||||||
else {
|
else {
|
||||||
$data = [
|
$data = [
|
||||||
'error' => false,
|
'error' => false,
|
||||||
'data' => $user,
|
'data' => [
|
||||||
|
'id' => $user->id,
|
||||||
|
'login' => $user->login,
|
||||||
|
'info' => $user->info,
|
||||||
|
'reg_dt' => $user->reg_dt,
|
||||||
|
'online_dt' => $user->online_dt,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user