Swagger默认将access_code传递给标头。可以通过id_token吗?
我正在用swagger.yaml版本2.0记录我的swagger.yaml REST

发布于 2019-07-11 12:31:12
是的,这是可能的,即使这不是一个好主意,作为mentioned by @DalmTo。
您需要将x-tokenName: id_token添加到OAuth定义中的Google安全定义中。
swagger: '2.0'
...
securityDefinitions:
google_oauth:
type: oauth2
description: Google OAuth
flow: accessCode
authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth
tokenUrl: https://www.googleapis.com/oauth2/v4/token
x-tokenName: id_token # <-------
scopes:
...注释:要在 2.0定义中使用x-tokenName,您需要Swagger 3.8.12+;要在OpenAPI 3.0中使用它,则需要Swagger 3.25.0+。
发布于 2020-12-17 21:14:05
通过在安全配置中设置x-tokenName,可以使Swagger或Nswagg使用不同的令牌(id_token或access_token),如下所示:
services.AddSwaggerDocument(config =>
{
config.PostProcess = document =>
{
document.Info.Title = "API OpenBankWeb";
document.Info.Description = "Uma simples Web API feita em ASP.NET Core consumindo AWS.\nClique nos títulos abaixo para expandir.";
};
config.AddSecurity("oauth2", new NSwag.OpenApiSecurityScheme
{
Type = OpenApiSecuritySchemeType.OAuth2,
ExtensionData = new Dictionary<string, object>
{
{ "x-tokenName", "id_token" }
},
Flows = new OpenApiOAuthFlows
{
AuthorizationCode = new OpenApiOAuthFlow
{
AuthorizationUrl = _domain + "/oauth2/authorize",
TokenUrl = _domain + "/oauth2/token"
}
}
});这在使用AWS认知时非常方便,因为它只使用id令牌进行身份验证。
https://stackoverflow.com/questions/56982278
复制相似问题