Почему x-tokenName игнорируется в swagger?

я хочу сделать oauth2 авторизацию с помощью google. Мне нужно чтобы swagger брал токен из id_token. Но когда я задаю значение для x-tokenName в id_token то ничего не происходит и параметр просто игнорируется.

Ответа сколько не искал так и не нашел!

Вот мой код:

            builder.Services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo 
                { 
                    Title = "Authentification", 
                    Version = "v1",
                    Description = "Api description"
                });
                options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
                {
                    Type = SecuritySchemeType.OAuth2,
                    In = ParameterLocation.Header,
                    Flows = new OpenApiOAuthFlows
                    {
                        AuthorizationCode = new OpenApiOAuthFlow
                        {
                            AuthorizationUrl = new Uri($"https://accounts.google.com/o/oauth2/v2/auth"),
                            TokenUrl = new Uri($"https://www.googleapis.com/oauth2/v4/token"),
                            Scopes = new Dictionary<string, string>
                            {
                                { $"https://www.googleapis.com/auth/cloud-platform.read-only", "Description" }
                            },
                            Extensions = new Dictionary<string, IOpenApiExtension>
                            {
                                { "x-tokenName", new OpenApiString("token_type") }
                            }
                        }
                    }
                });
                options.AddSecurityRequirement(new OpenApiSecurityRequirement()
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" },
                        },
                        new [] { "https://www.googleapis.com/auth/cloud-platform.read-only" }
                    }
                });
            });

также вот ссылка, которую генерирует swagger https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?response_type=code&client_id={client-id}&redirect_uri=https%3A%2F%2Flocalhost%3A7037%2Foauth2-redirect.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform.read-only&state=U2F0IEphbiAyOCAyMDIzIDEwOjI0OjU0IEdNVCswMjAwICjQktC%2B0YHRgtC%2B0YfQvdCw0Y8g0JXQstGA0L7Qv9CwLCDRgdGC0LDQvdC00LDRgNGC0L3QvtC1INCy0YDQtdC80Y8p&realm=client-realm&service=lso&o2v=2&flowName=GeneralOAuthFlow

При валидации токена который возвращает swagger я получаю ошибку: Google.Apis.Auth.InvalidJwtException: JWT must consist of Header, Payload, and Signature

Использую openapi версии 3.0.1.

Если нужна еще какая-то информация, то с радостью предоставлю!


Ответы (0 шт):