从swagger API发送标头

时间:2020-03-30 04:40:37

标签: laravel swagger swagger-ui jwt-auth

我在Laravel 7中使用Swagger,并且我想使用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());
  }
 */

我是用邮差做的。但是我想知道将令牌发送到api的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

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

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

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

令牌输入视图 enter image description here

使用有效的token授权后,即可访问需要授权的API。希望这可以帮助某人。