Skip to content

Authentication to see documentation #1032

@Sparviero-Sughero

Description

@Sparviero-Sughero

I think there is some problems when you need to share API documentation using auth.
I'm using

$config = new Config([
  'username' => 'aaa',
  'password' => 'bbb',
  'database' => 'ccc',
  'tables' => 'products',
  'openApiBase' => json_encode(array(
    "info" => array(
      "title" => "Title",
      "version" => "1.0.0",
    ),
    "components" => array(
      "securitySchemes" => array(
        "ApiKeyAuth" => array(
          "type" => "apiKey", 
          "in" => "header",
          "name" => "X-API-Key",
        )
      )
    )
  )),
  // auth 
  'apiKeyAuth.mode'=> 'required',
  'middlewares' => 'cors,apiKeyAuth',
  'apiKeyAuth.keys' => 'Vp7LxyEpfwYjSVm',
]);

In https://petstore.swagger.io/?url=https://<your domain>/api.php/openapi there is no way to pass the auth-key.
I think you should define in json the option to enable auth also in swagger (or similar).

Activity

mevdschee

mevdschee commented on May 17, 2024

@mevdschee
Owner

there is no way to pass the auth-key.

I know

I think you should define in json the option to enable auth also in swagger (or similar).

I'm not sure I properly understand what it is you are proposing. Can you try to clarify this for me?

Probably, what change do you think would be needed in the openapi to support authenticating using the api key?

I'm looking forward to your suggestion for improvement.

self-assigned this
on May 17, 2024
Sparviero-Sughero

Sparviero-Sughero commented on May 21, 2024

@Sparviero-Sughero
Author

Hi mevdschee (tnx for your amazing job).
With the code

    "components" => array(
      "securitySchemes" => array(
        "ApiKeyAuth" => array(
          "type" => "apiKey", 
          "in" => "header",
          "name" => "X-API-Key",
        )
      )

swagger show the Authorize button.
Then:

  1. click on Authorize button
  2. insert the apiKey
  3. click to "Try it out"
  4. click to "Execute"
    Swagger show "Loading" message and the API doesn't work.
    I don't know why :o(
    Maybe there is some options you need to add to json to enable auth on swagger?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @mevdschee@Sparviero-Sughero

      Issue actions

        Authentication to see documentation · Issue #1032 · mevdschee/php-crud-api