我在我的项目中使用DarkaOnLine的L5-swagger。我想在我的文档中使用JWT Auth。我添加了以下代码:
/**
@OAS\SecurityScheme(
securityScheme="API Key Auth",
type="apiKey",
in="header",
name="Authorization",
)
**/
在swagger UI中,显示“授权”按钮,并有一个表单需要填写令牌。但在我输入它之后,我仍然在需要令牌才能访问它的函数中得到“令牌未提供”错误。
先谢了。
4条答案
按热度按时间pgvzfuti1#
@OAS
注解适用于OpenAPI 3.0,其中承载身份验证定义为type: http
+scheme: bearer
:确保您的操作使用的
security
与上面securityScheme="<NAME>"
中指定的名称相同。例如:在Swagger UI的“授权”对话框中,输入没有“承载者”前缀的令牌。
tv6aics12#
这个链接解决了我的问题。承载授权设置
我将其用于Laravel Lumen,JWT身份验证。
将其添加到中间件中的某个位置或任何其他位置,如基本控制器
并将此添加到您的动作/功能中。
11dmarpk3#
您可以将swagger配置修改为如下所示。即config/l5-swagger.php
然后添加修改操作,使其看起来像这样。
注意,这里使用的
bearer_token
与安全性的Unique name相同,使用这种方法,您不需要对中间件进行更改。fxnxkyjh4#
对于那些使用Sangtum API身份验证的用户。
在文件
config/l5-swagger.php
中,取消对sancutum默认安全配置的注解。然后运行以下命令:
那么对于你的保护功能,你可以使用密室安全。
使用以下命令重新生成文档:
然后,您可以按下“Authentication”按钮,并在内部输入中以
Bearer <your token>
设置您的承载令牌