Как проверить, что вызов API является правильным запросом ресурса с помощью PHP-сервера Алекса Билби OAuth2?
Я использую OAuth2-server-php Алекса Билби для OAuth в своем приложении. Я хотел бы использовать это для защиты моего API. У меня есть запрос на авторизацию, код авторизации, маркер доступа, все разобрано, все прекрасно работает.
Но как реализовать это для API?
Есть главный контроллер, который разбирает общие методы: простые операции получения и т. Д. В этом конструкторе я хотел бы убедиться, что URL-адрес, который они вызвали, действителен. Если access_token существует, привяжите связанный клиент к связанному пользователю.
Затем в контроллере, который контролирует весь /products
ресурс, я хотел бы проверить область для этого вызова, т.е. проверить, если для post / put / patch у access_token есть products_write
объем.
Возвращаясь к главному контроллеру, в конструкторе это:
$oauth = new Oauth(); //creates a new instance of the OAuth server, with all relevant info regarding db, grant types, and supported scopes.
if(!$oauth->server->verifyResourceRequest($oauth->request, $oauth->response)) {
echo '<pre>';
var_dump($oauth->server->getResponse());
exit();
}
Это суетится на:
object(OAuth2\Response)#129 (5) {
["version"]=>
string(3) "1.1"
["statusCode":protected]=>
int(400)
["statusText":protected]=>
string(11) "Bad Request"
["parameters":protected]=>
array(2) {
["error"]=>
string(15) "invalid_request"
["error_description"]=>
string(80) "Only one method may be used to authenticate at a time (Auth header, GET or POST)"
}
["httpHeaders":protected]=>
array(2) {
["Cache-Control"]=>
string(8) "no-store"
["WWW-Authenticate"]=>
string(149) "Bearer realm="Service", error="invalid_request", error_description="Only one method may be used to authenticate at a time (Auth header, GET or POST)""
}
}
В чем здесь проблема, что мне не хватает? В учебнике или документации нет ничего о том, как на самом деле проверить запрос ресурса.
1 ответ
Проблема заключалась в том, что я уже вошел на основной сайт. Он увидел, что я прошел через это, и это было запрещено.