PHP RESTful API для принятия аутентификации - PullRequest
1 голос
/ 22 декабря 2011

Я работаю над PHP REST API. Я хотел бы потребовать ключ пользователя для доступа к API. Хотя я не уверен, как это сделать, нужно ли просто выдать ключ, чтобы они отправляли его в POST или GET при каждом запросе API? Пожалуйста, помогите мне объяснить, если можете, простыми словами, я знаю, это то, что многие люди хотят сделать, и это смущает многих людей, а не только меня.

Также я хотел бы иметь возможность ограничить использование, я думал о сохранении каждого попадания в базе данных MySQL или даже чего-то в памяти. Я только что видел это в заголовке запроса Github API X-RateLimi-Limit 5000 и X-RateLimi-Remaining 4996 и число уменьшается на 1 при каждом попадании, это какой-то встроенный лимитер?

1 Ответ

1 голос
/ 22 декабря 2011

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

Проверять его при каждом запросе, возвращать код ошибки, если идентификатор отсутствует или недействителен.

Для ограничения скорости вы правы, вам нужна отдельная таблица для хранения счетчика.запросов на клиента, а затем сгенерируйте эти заголовки ответов с помощью счетчиков X-RateLimit.

Это не так сложно, на самом деле.

Я написал API, который делает это для моего проекта, вы можетепосмотрите на исходный код, он находится в папке Api, здесь https://github.com/snytkine/LampCMS/tree/master/lib/Lampcms/Api/

, а точка входа для вызовов API - это https://github.com/snytkine/LampCMS/blob/master/www/api/api.php

URL для добавления нового приложения: http://support.lampcms.com/index.php?a=editapp

...