我想在我的swagger文档中包含cookie授权,但是我似乎没有取得任何进展。
根据https://docs.nestjs.com/openapi/security的说法,似乎在nestjs-swagger中支持cookie auth。
然而,根据Swagger UI和编辑器的https://swagger.io/docs/specification/authentication/cookie-authentication/,cookie身份验证不支持“试用”
我不确定我是不是错误地实现了cookie身份验证,或者只是不支持它。
Bellow是我正在尝试的实现。
在DocumentBuilder()中:
.addCookieAuth('authCookie')在控制器中:
@ApiCookieAuth()我尝试将我的cookie名称'authCookie‘添加到@ApiCookieAuth()标记中。我也尝试过使用.addCookieAuth('authCookie', {type: 'apiKey',in: 'cookie'})
无论我如何尝试,我都会得到一个JWT令牌未找到错误。我知道当我使用postman时,这是可行的,所以我很困惑为什么我会得到这个问题。
发布于 2021-03-20 18:19:18
基本上,您可以只使用
SwaggerModule.setup('swagger', app, document, {
swaggerOptions: {
requestInterceptor: (req) => {
req.credentials = 'include';
return req;
},
},
});请注意,手动设置cookie值不会对Fetch请求产生任何影响。
它与swagger-client相关,与NestJs无关
发布于 2021-09-10 05:00:28
我的一个独到之处就是在DocumentBuilder中使用这样的options
.addCookieAuth('authCookie', {
type: 'http',
in: 'Header',
scheme: 'Bearer'
})和这样的装饰器在控制器中:
@ApiCookieAuth()如果您需要指定cookie名称,可以使用securityName参数指定应用程序中cookie 的名称
.addCookieAuth(cookieName?: string, options?: SecuritySchemeObject, securityName?: string)在指定securityName之后,还需要将其提供给contoller装饰器:
在DocumentBuilder中
.addCookieAuth('auth-cookie', {
type: 'http',
in: 'Header',
scheme: 'Bearer'
},
'in-app-cookie-name')在控制器中:
@ApiCookieAuth('in-app-cookie-name')这个解决方案是在手动将JWT插入到swagger auth输入之后,仅使用。如果我没弄错- SwaggerUI不支持自动插入cookie字段。
https://stackoverflow.com/questions/64361738
复制相似问题