@Chesterfield25

Как сделать запрет?

У меня есть restApi. Данный api будет использоваться в приложение. Хочу сделать запрет на использование если не прошла проверка. В index.php Есть небольшая проверка с приложения приходить get запрос, если это значение совпадает с тем значением что в бд значит всё ок, если нет то сделать запрет на использование всего остального функционала. У меня сама проверка работает, но как сделать запрет на использование всего функционала в случае если проверка не прошла? Думал присылать ip устройства и при необходимости блокировать его, но это идеальное решение если человек подключен по wifi, а если мобильная сеть то так можно заблокировать много пользователей. Может что то посоветуете?

Вот сам index.php
<?php 

// необходимые HTTP-заголовки
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: GET");


if(isset($_GET['get_package'])){

require_once __DIR__.'/boot.php';

$get_package = $_GET['get_package'];

$get = null;

$stmt = pdo()->prepare("SELECT `name` FROM `get_package_name`");
$stmt->execute();
$get = $stmt->fetch(PDO::FETCH_ASSOC);

// массив requestok
$requestok_arr['status'] = '200';
$requestok_arr['message'] = 'OK';

// массив requestno
$requestno_arr['status'] = '401';
$requestno_arr['message'] = 'Access denied for your application.';

if($get_package === $get['name']) {
    echo json_encode($requestok_arr);
} else {
    echo json_encode($requestno_arr);
}

} else {
// массив requestfailed
$requestfailed_arr['status'] = '404';
$requestfailed_arr['message'] = 'Failure!';

    echo json_encode($requestfailed_arr);
}
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 2
iMedved2009
@iMedved2009
Не люблю людей
$stmt = pdo()->prepare("SELECT `name` FROM `get_package_name` where name = ?");
$stmt->execute([$_GET['name']]);
$get = $stmt->fetch(PDO::FETCH_ASSOC);

В гет будет лежать пустой массив если нет такой записи.

З.Ы. Зачем эти вложенности?
if(!isset($_GET['get_package'])){
      die(json_encode($requestfailed_arr));
}
Ответ написан
Комментировать
catanfa
@catanfa
очень похоже что вам нужна авторизация. Один из самых простых вариантов - HTTP авторизация https://www.php.net/manual/en/features.http-auth.php. Это проверку, разумеется, нужно выполнять на любом запросе в приложение. Конкретное место зависит от фреймворка. Если у вас фреймворка нет, но есть единая точка входа (index.php), то можно проверку поместить туда. Иначе сделать сначала единую точку входа )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 16:55
10000 руб./за проект
23 апр. 2024, в 16:10
1500 руб./в час
23 апр. 2024, в 16:05
3000 руб./за проект