Хочу создать REST API правильно ли я это делаю для регистрации и авторизации пользователя?
Иерархия очень проста есть конфиг подключения к бд, модель класса пользователя и регистрация.
Модель класса
<?php
class User {
// подключение к базе данных и таблице "products"
private $conn;
private $table_name = "users";
// свойства объекта
public $id;
public $login;
public $email;
public $password;
public $status;
public $balance;
public $created;
// конструктор для соединения с базой данных
public function __construct($db){
$this->conn = $db;
}
// метод readAll() - получение абсолютно всех пользователей
function read() {
// выбираем все записи
$query = "SELECT * FROM " . $this->table_name . " ";
// подготовка запроса
$stmt = $this->conn->prepare($query);
// выполняем запрос
$stmt->execute();
return $stmt;
}
function readOne() {
// запрос для чтения одной записи (товара)
$query = "SELECT * FROM " . $this->table_name . " WHERE f.id = ? LIMIT 0,1";
// подготовка запроса
$stmt = $this->conn->prepare( $query );
// привязываем id товара, который будет обновлен
$stmt->bindParam(1, $this->id);
// выполняем запрос
$stmt->execute();
// получаем извлеченную строку
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// установим значения свойств объекта
$this->id = $row["id"];
$this->login = $row["login"];
$this->email = $row["email"];
$this->password = $row["password"];
$this->status = $row["status"];
$this->balance = $row["balance"];
$this->created = $row["created"];
}
// метод create - создание товаров
function create(){
// запрос для вставки (создания) записей
$query = "INSERT INTO
" . $this->table_name . "
SET login=:login, email=:email, password=:password, status=:status, balance=:balance, created=:created";
// подготовка запроса
$stmt = $this->conn->prepare($query);
// очистка
$this->login=htmlspecialchars(strip_tags($this->login));
$this->email=htmlspecialchars(strip_tags($this->email));
$this->password=htmlspecialchars(strip_tags($this->password));
$this->status=htmlspecialchars(strip_tags($this->status));
$this->balance=htmlspecialchars(strip_tags($this->balance));
$this->created=htmlspecialchars(strip_tags($this->created));
// привязка значений
$stmt->bindParam(":login", $this->login);
$stmt->bindParam(":email", $this->email);
$stmt->bindParam(":password", $this->password);
$stmt->bindParam(":status", $this->status);
$stmt->bindParam(":balance", $this->balance);
$stmt->bindParam(":created", $this->created);
// выполняем запрос
if ($stmt->execute()) {
return true;
}
return false;
}
}
?>
Регистрация
<?php
// необходимые HTTP-заголовки
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// получаем соединение с базой данных
include_once "../config/database.php";
// создание объекта товара
include_once "../models/user.php";
$database = new Database();
$db = $database->getConnection();
$user = new User($db);
// получаем отправленные данные
$data = json_decode(file_get_contents("php://input"));
// убеждаемся, что данные не пусты
if (
!empty($data->login) &&
!empty($data->email) &&
!empty($data->password) &&
!empty($status->status) &&
!empty($balance->balance) &&
!empty($created->created)
) {
// устанавливаем значения свойств товара
$user->login = $data->login;
$user->email = $data->email;
$user->password = $data->password;
$user->status = $data->status;
$user->balance = $data->balance;
$user->created = date("d-m-Y H:i:s");
// создание товара
if($user->create()){
// установим код ответа - 201 создано
http_response_code(201);
// сообщим пользователю
echo json_encode(array("message" => "Faucet was created."), JSON_UNESCAPED_UNICODE);
}
// если не удается создать товар, сообщим пользователю
else {
// установим код ответа - 503 сервис недоступен
http_response_code(503);
// сообщим пользователю
echo json_encode(array("message" => "Faucet cannot be created."), JSON_UNESCAPED_UNICODE);
}
}
// сообщим пользователю что данные неполные
else {
// установим код ответа - 400 неверный запрос
http_response_code(400);
// сообщим пользователю
echo json_encode(array("message" => "Unable to create faucet. The data is incomplete."), JSON_UNESCAPED_UNICODE);
}
?>