Giter Club home page Giter Club logo

vktest-rest's Introduction

Упрощенный REST API сервис регистрации и авторизации на PHP

Сервис REST API на PHP с использованием MySQL, Docker, реализацией JWT токена и демонстрационным интерфейсом.


Реализует следующие методы

POST /register - регистрация нового пользователя
Описание

Этот метод используется для регистрации нового пользователя, возвращает 201 в случае успеха и 400 в случае несоответствия входных параметров требованиям

URL
/register
Параметры запроса
  • email (обязательный, строка): Email нового пользователя.
  • password (обязательный, строка): Пароль нового пользователя.
Пример тела запроса (формат JSON)
{
  "email": "[email protected]",
  "password": "password123A!"
}
Коды ответа
  • 201 Created: В случае успешной регистрации нового пользователя.
  • 400 Bad Request: Если формат данных некорректен или некорректные параметры запроса.
Пример успешного ответа (201 Created)
{ 
  "user_id": 2,
  "password_check_status": "perfect"
}
Пример ошибки формата данных (400 Bad Request)
{
  "error": "invalid_email"
}

POST /authorize - авторизация пользователя с получением JWT токена
Описание

Этот метод используется для авторизации пользователя по логину и паролю. В случа успешной авторизации сервер возвращает JWT токен

URL
/authorize
Параметры запроса
  • email (обязательный, строка): Email существующего пользователя.
  • password (обязательный, строка): Пароль существующего пользователя.
Пример тела запроса (формат JSON)
{
  "email": "[email protected]",
  "password": "password123A!"
}
Коды ответа
  • 200 OK: В случае успешной авторизации.
  • 400 Bad Request: Если формат данных некорректен или некорректные параметры запроса.
Пример успешного ответа (200 OK)
{
  "access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxOX0.dQSN97nu5ILmTqNPLYNsPFY_Mq49ul0XmKgqwxw49M0"
}
Пример ошибки формата данных (400 Bad Request)
{
  "error": "wrong_password"
}

GET /feed - проверка JWT токена из заголовка Authorization
Описание

Этот метод реализует проверку JWT токена, который был получен в методе /authorize. Токен должен быть передан в заголовке Authorization.

URL
/feed
Параметры запроса
  • Заголовок Authorization: в заголовке необходимо передать JWT токен, полученный при авторизации.
Коды ответа
  • 200 OK: В случае успешной валидации JWT.
  • 401 Unauthorized: В противном случае.

Установка и настройка

Скачать репозиторий

git clone https://github.com/CDYNOT/vktest-rest.git

Для запуска сервиса потребуется установленный Docker, затем необходимо добавить новую строку в файл hosts:

127.0.0.1 task.loc

Запуск и работа с сервисом

Запсуск сервиса, при первичном запуске скачаются все нужные образы:

docker-compose up -d

Установка необходимых зависимостей и генерация autoload файла:

docker-compose exec -w /var/www/task.loc php composer install

После этого сервис станет доступен по адресу http://task.loc

Демонстрационный интерфейс работы сервиса доступен по адресу http://task.loc/demo.php.

Остановка сервиса:

docker-compose down

Для подключения к базе данных MySQL используются следующие данные:

  • Host: mysql
  • Имя пользователя: cdynot
  • Пароль: secret
  • Имя базы данных: task
  • Порт: 3306

При желании, данные можно поменять в файлах docker-compose.yml и /src/Database/Database.php


vktest-rest's People

Contributors

cdynot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.