PHP - Специальный сценарий для хранения информации для входа - PullRequest
0 голосов
/ 25 августа 2011

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

Они получат доступ к странице через URL, что-то вроде:

http://myurl.com/test.php?function=getUser&username=John

Это вызовет функцию getUser($username) ипередать значение John в качестве параметра $username. Вот поворот: эта страница будет вызываться из приложения, которое создает клиент, а не из браузера.

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

Я неЯ думаю, что я могу использовать сеансы или куки, так как они не вызывают страницу из браузера.Так как же сохранить этого пользователя в системе?

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Вы можете настроить что-то вроде SOAP API на своем конце. Затем вы можете предоставить им токен, который идет туда-сюда (и, возможно, меняется) между каждым запросом, который они делают.

Прочитайте SOAP и посмотрите, вдохновляет ли оно вас по крайней мере. Что касается его реализации, вариантов у вас много. Может быть, рассмотреть возможность использования фреймворка?

0 голосов
/ 25 августа 2011

Простой ответ: Вы не можете , поскольку HTTP не имеет состояния.

Но: Вы можете использовать тот же принцип, что и куки-файлы, а именно: «отправлять некоторую информацию об аутентификации вместе с запросом без передачи секрета». Посмотрите на OAuth и соответствует ли он вашему сценарию. Вы даже можете использовать готовые библиотеки для PHP.

0 голосов
/ 25 августа 2011

Вы попали в стену без сохранения состояния: D.

Вам нужно будет либо создать клиентский объект браузера с поддержкой сеанса с некоторой библиотекой, либо обмен токенами.Но пока вы используете отдельную сессию между вызовами, вам нужно будет снова обращаться к базе данных, чтобы авторизовать пользователя;токен или нет.

...