Advertisement
ReginaRay

Untitled

Jan 16th, 2017
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.72 KB | None | 0 0
  1. <?php
  2.  
  3. session_start();
  4.  
  5. $users = [
  6.     "User1" => "Password1",
  7.     "User2" => "Password2",
  8. ];
  9.  
  10. // Получаем содержимое тела запроса
  11. $requestBody = file_get_contents('php://input');
  12.  
  13. // Второй подход. Передача json как значения поля формы
  14. if (isset($_POST["data"])) {
  15.     $requestBody = $_POST["data"];
  16. }
  17.  
  18. // Выведет полученную json строку
  19. //echo $requestBody;
  20.  
  21. // Декодируем json строку в ассоциативный массив http://php.net/manual/ru/function.json-decode.php
  22. $request = json_decode($requestBody, true);
  23.  
  24. if ($request == null || !array_key_exists("UserName", $request) || !array_key_exists("Password", $request)) {
  25.     // Если попали сюда, значит получили запрос, не удовлетворяющий API. Выводим ошибку
  26.     $error = [
  27.         "Status" => 400,
  28.         "Message" => "Bad Request",
  29.     ];
  30.  
  31.     // Кодируем ошибку в json и печатаем http://php.net/manual/ru/function.json-encode.php
  32.     $jsonError = json_encode($error);
  33.     echo $jsonError;
  34.     exit();
  35. }
  36.  
  37. // Если дошли до сюда, значит запрос корректен
  38.  
  39. // Проверяем, зарегистрирован ли пользователь с данным именем (для упрощения рассматривается случай без БД)
  40. if (!array_key_exists($request["UserName"], $users)) {
  41.     // Если попали сюда, то пользователя не существует. Выведем ошибку
  42.     $error = [
  43.         "Status" => 101,
  44.         "Message" => "User Not Found",
  45.     ];
  46.     $jsonError = json_encode($error);
  47.     echo $jsonError;
  48.     exit();
  49. }
  50.  
  51. // Поверям, что правильно введён пароль пользователя. По хорошему надо использовать хеширование паролей
  52. if ($request["Password"] != $users[$request["UserName"]]) {
  53.     // Пароли не совпадают. Выводим ошибку
  54.     $error = [
  55.         "Status" => 102,
  56.         "Message" => "Wrong Password",
  57.     ];
  58.     $jsonError = json_encode($error);
  59.     echo $jsonError;
  60.     exit();
  61. }
  62.  
  63. // Если дошли до сюда, то пользователя можно аутентифицировать
  64. // В данном случае как id используется имя пользователя
  65. $_SESSION["UserId"] = $request["UserName"];
  66.  
  67. // Возвращаем положительный статус
  68. $status = [
  69.     "Status" => 200,
  70.     "Message" => "OK",
  71. ];
  72. $jsonResult = json_encode($status);
  73. echo $jsonResult;
  74.  
  75. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement