Как происходит авторизация через api в php

209
29 марта 2018, 09:50

Здравствуйте. Никогда ранее не сталкивался с написанием API для сайта. С получением общих данных вроде как разобрался.

Не понятен один нюанс: человек установил приложение. В приложении два поля : логин и пароль . Ввел и отправил .. Все окей, данные верны.

А что дальше должно происходить, чтобы попасть в ЛК: должны куки запоминаться на телефоне, сессии или что ? Уже перечитал инфы и что-то не могу понять вообще.

Спасибо

Answer 1

Обычно для авторизации в API используют механизм OAuth2. Суть в том, что ваш сервер при получении авторизационных данных должен отдавать клиенту шифрованный token, который в последствии клиент будет передавать с запросами в заголовках, по этому токену вы и будете определять клиент. Вот ссылка на пакет OAuth2 сервера на чистом PHP. https://packagist.org/packages/league/oauth2-server Так же если хотите вы можете воспользоваться механизмом JWT Json Web Token - тоже некоторая альтерантива OAuth2 тоже довольно популярная - логика такая же клиент посылает авторизационные данные вы выдаете ему JWT который в последствии он использует для обращения пока у тог оне пройдет срок годности. Вот популярный пакет про JWT https://packagist.org/packages/lcobucci/jwt В общем случае особое внимание надо уделять механизму обновления токенов, когда они expire'ятся так как обычно API - приложение многопоточное, таким образом у вас может произойти ситуация когда два запроса придут один за одним с просроченным token'ом - и эт у ситуацию надо как-то решать. В простом случае на update токена, если он уже идет должна быт ькакая-то блокировка и новый токен можно записать в БД со сроком истечения, в то же время заблокирвоанный запрос должен получить заголовок, требующий его обратится за token'ом снова и так пока не будет в базе доступен новый токен.(это как пример решения проблемы конкурентных запросов с просроченным токеном)

READ ALSO
PHP, как обработать массив

PHP, как обработать массив

Имеется такой массив

201
PHP парсинг JSON

PHP парсинг JSON

Есть JSON, который тянется с https://zkillboardcom/api/kills/corporationID/1000107/limit/10/ Сам JSON не бросаю - он огромный никак не могу его распарсить

200
Ошибка при преобразовании строки в дату. ORA-00917: отсутствует запятая

Ошибка при преобразовании строки в дату. ORA-00917: отсутствует запятая

Добавляю в таблицу (БД использую ОРАКЛ) данные по форме! Отправляю по форме данные типа датыКак конвертировать строку в дату? Пишет литерал...

127