Страницы

Поиск по вопросам

пятница, 1 марта 2019 г.

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

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


Ответ

Обычно для авторизации в 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'ом снова и так пока не будет в базе доступен новый токен.(это как пример решения проблемы конкурентных запросов с просроченным токеном)

Комментариев нет:

Отправить комментарий