在Swagger UI中创建承载令牌

时间:2019-05-09 14:01:37

标签: c# swagger-ui asp.net-core-2.2 openiddict

我们有一个基于.NET Core 2.2的ASP.NET WebApi项目,我们正在通过开放ID使用承载令牌进行身份验证。

实际上,我只能使用邮递员创建承载令牌,在那里我可以定义一个x-www-form-urlencoded正文,其中包含用户名和密码之类的授权属性。

我已经在启动类的swaggergen选项中添加了安全定义:

options.AddSecurityDefinition("Bearer", 
                        new ApiKeyScheme()
                            {
                                In = "header",
                                Description = "Please insert Bearer JWT token into field. Example: 'Bearer {token}'",
                                Name = "Authorization",
                                Type = "apiKey"
                            });

但是我仍然必须通过邮递员创建不记名令牌。我如何也可以通过Swagger UI创建它?

我尝试过此方法,但不起作用:

options.AddSecurityDefinition("OpenID Connect", new OAuth2Scheme
                                                                    {
                                                                        Type = "oauth2",
                                                                        Flow = "implicit",
                                                                        AuthorizationUrl = "/connect/authorize"
                    });

...

options.EnableAuthorizationEndpoint("/connect/authorize")
                            .AllowImplicitFlow()

1 个答案:

答案 0 :(得分:0)

您可以实施自定义招摇授权,以输入必要的字段以取回并保存承载令牌。您可以查看以下内容:http://www.geekswithblogs.net/michelotti/archive/2015/06/26/customize-authentication-header-in-swaggerui-using-swashbuckle.aspx

如果您想通过招摇来创建它,请向您的解决方案中添加一个自定义的端点,该端点仅在开发环境中可以使用,