发送 header 来自 swagger API

Sending a header From swagger API

我正在使用 Swagger 和 Laravel 7,我想使用 jwt 来验证用户。但是当我尝试对用户进行身份验证时,我需要在请求中发送一个令牌。

这是我的控制器方法:

 /**
 * Get the authenticated User.
 *
 * @return \Illuminate\Http\JsonResponse
 * 
 * @OA\Post(
 *     path="/api/auth/user",
 *     @OA\Response(response="200", description="Registering a new User."),
 *     @OA\RequestBody(
 *         @OA\MediaType(
 *             mediaType="application/json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="authentication",
 *                     type="string"
 *                 ),
 *                 example={"authentication": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTU4NTUyNzA5MSwiZXhwIjoxNTg1NTMwNjkxLCJuYmYiOjE1ODU1MjcwOTEsImp0aSI6IllTNElhM0JkdGVpdmVMVlQiLCJzdWIiOjYxLCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.GF2_8-WhgD9rIS2SjxY9D4wQzZQVhVLXsacJO1f8dg4"}
 *             )
 *         )
 *     ),
 * )
 *
 */
 public function user()
  {
     return response()->json(auth()->user());
  }
 */

我是用 Postman 做的。但我想知道将令牌发送到 api?

的正确方法是什么

要做到这一点,我们必须做两件事

  1. 像下面这样在基本控制器上声明一个 SecurityScheme
     * @OA\SecurityScheme(
     *    securityScheme="bearerAuth",
     *    in="header",
     *    name="bearerAuth",
     *    type="http",
     *    scheme="bearer",
     *    bearerFormat="JWT",
     * ),
  1. 在相应的 API 调用上使用声明的 SecurityScheme,如下所示
     *       security={
     *           {"bearerAuth": {}}
     *       }

现在,如果您重新加载 API 文档页面,将会看到添加了 Authorize 按钮,单击该按钮将打开一个模型,您可以在其中输入您的 token.

令牌输入视图

使用有效令牌授权后,您将可以访问需要授权的API。希望这可能对某人有所帮助。