首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoogleGoogle2.0授权的狂妄自大

GoogleGoogle2.0授权的狂妄自大
EN

Stack Overflow用户
提问于 2019-07-11 05:41:53
回答 2查看 4.6K关注 0票数 1

Swagger默认将access_code传递给标头。可以通过id_token吗?

我正在用swagger.yaml版本2.0记录我的swagger.yaml REST

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-11 12:31:12

是的,这是可能的,即使这不是一个好主意,作为mentioned by @DalmTo

您需要将x-tokenName: id_token添加到OAuth定义中的Google安全定义中。

代码语言:javascript
复制
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+。

票数 3
EN

Stack Overflow用户

发布于 2020-12-17 21:14:05

通过在安全配置中设置x-tokenName,可以使Swagger或Nswagg使用不同的令牌(id_token或access_token),如下所示:

代码语言:javascript
复制
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令牌进行身份验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56982278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档