Как проверить, что вызов 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 ответ

Проблема заключалась в том, что я уже вошел на основной сайт. Он увидел, что я прошел через это, и это было запрещено.

Другие вопросы по тегам