我是LoopBack v4的新手,我试着在每次请求时发送一个授权密钥。我以前用过Swagger,我习惯于在点击右边的“授权”按钮后添加api密钥。为了避免由于我缺乏经验而导致的错误,我已经开始使用一个新的应用程序“待办事项列表”的例子。我试着(没有成功)按照这篇文章的建议:Nodejs Loopback 4 add bearer token config into swagger explorer
我所做的就是用下面的代码修改文件src/index.ts
:
export async function main(options: ApplicationConfig = {}) {
const spec: OpenApiSpec = {
openapi: '3.0.0',
info: {
title: 'LoopBack Application v2',
version: '1.0.2',
},
paths: {
},
securityDefinitions: [
{
api_key: [
{
type: 'apiKey',
name: 'api_key',
in: 'header'
}
]
},
],
};
const app = new TodoListApplication(options);
app.api(spec);
await app.boot();
await app.start();
const url = app.restServer.url;
console.log(`Server is running at ${url}`);
return app;
}
基本上,我加了这一行:app.api(spec);
和配置securityDefinitions
。spec
常量更改了title
和version
,但我仍然看不到“授权”按钮。可以肯定,我遗漏了一些内容或做错了一些内容。
任何帮助都是感激不尽的!谢谢!
3条答案
按热度按时间vaj7vani1#
最后,我添加了“Authorize”按钮,并在标题中发送
api_key
,配置如下:4smxwvx52#
在文件系统中创建一个安全规范文件,如下所示
在超级(选项)下的XXXX应用程序类中的application.ts文件中添加以下代码,并从安全规范文件中导入SECURITY_SCHEME_SPEC、SECURITY_SPEC。
引用环回链路
ev7lccsx3#
对于
"@loopback/core": "^4.0.3"
,这可以如OAS增强服务作为扩展点中所描述的那样来实现。1.创建新的
OASEnhancer
类,即在my-spec.ts
中创建JwtAuthSpecEnhancer
1.绑定到
application.ts
搞定!
或者,对于
ApiKey
类型的身份验证,请参考Swagger doc。例如,可以将OAS Enhancer
配置为使用header
中的access_token
,如下所示:请注意,
Loopback 4
支持SecuritySchemeType = 'apiKey' | 'http' | 'oauth2' | 'openIdConnect'