PHP API аутентификация и сессии - PullRequest
7 голосов
/ 10 января 2012

У меня есть PHP-приложение, которое сильно зависит от сессий. Сейчас мы рассматриваем создание API для наших пользователей. Наша первоначальная мысль заключается в том, что пользователям нужно будет проходить аутентификацию на основе API, используя свой адрес электронной почты, пароль и ключ API (уникальный для каждого пользователя).

Однако, поскольку текущее приложение (включая модели) широко использует пользовательские сессии, я не уверен в наилучшем подходе.

Если предположить, что запрос API правильно аутентифицирован, будет ли приемлемо:

  • Запустить сеанс для вызова API после аутентификации пользователя.
  • Запустите модели и верните json / xml пользователю
  • убить сессию

Это означает, что сеанс создается для каждого вызова API, а затем немедленно сбрасывается. Это нормально? Или мы должны рассмотреть другие альтернативы?

1 Ответ

1 голос
/ 10 января 2012

В своем опыте создания API я обнаружил, что лучше всего, когда сеансы длятся только один запрос и воссоздавать информацию о сеансе в каждом цикле выполнения.

Это, очевидно, приводит к дополнительным затратам, если ваш экземпляр сеансаважно, однако, если вы просто проверяете учетные данные по базе данных, все должно быть в порядке.Кроме того, вы должны иметь возможность кэшировать любые тяжелые операции в чем-то вроде APC или memcache на основе идентификатора пользователя, а не сеанса, сокращая работу, необходимую для воссоздания сеанса, обеспечивая при этом проверку подлинности, проверяемую в каждом запросе.

...