三、闊歩検証

まず、オープン闊歩検証

検証の外観を有効にした後:少しボタンより

 トークンは、サーバから取得したテキストボックスへの入力を次のようにインターフェースを開いた後です。フォーマット:ベアラ+スペース+トークン。ベアラは、デフォルトルールとして見ることができます。

 構成コードを追加します。

                #region 启用swagger验证功能
                //添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称一致即可,CoreAPI。
                var security = new Dictionary<string, IEnumerable<string>> { { "CoreAPI", new string[] { } }, };
                options.AddSecurityRequirement(security);
                options.AddSecurityDefinition("CoreAPI", new ApiKeyScheme
                {
                    Description = "JWT授权(数据将在请求头中进行传输) 在下方输入Bearer {token} 即可,注意两者之间有空格",
                    Name = "Authorization",//jwt默认的参数名称
                    In = "header",//jwt默认存放Authorization信息的位置(请求头中)
                    Type = "apiKey"
                });
                #endregion

整体部分为:

            //1、注册服务Swagger
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info
                {
                    Version = "v1",
                    Title = "My API",
                    Description = "by JiaJia"
                });
                //在 Start.cs => ConfigureServices 方法中的 AddSwaggerGen 处增加 IncludeXmlComments 处理。
                options.IncludeXmlComments(string.Format("{0}/ZanLveCore.xml",
                AppDomain.CurrentDomain.BaseDirectory));

                #region 启用swagger验证功能
                //添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称一致即可,CoreAPI。
                var security = new Dictionary<string, IEnumerable<string>> { { "CoreAPI", new string[] { } }, };
                options.AddSecurityRequirement(security);
                options.AddSecurityDefinition("CoreAPI", new ApiKeyScheme
                {
                    Description = "JWT授权(数据将在请求头中进行传输) 在下方输入Bearer {token} 即可,注意两者之间有空格",
                    Name = "Authorization",//jwt默认的参数名称
                    In = "header",//jwt默认存放Authorization信息的位置(请求头中)
                    Type = "apiKey"
                });
                #endregion

            });

 二、在Startup类中配置身份认证服务

            //添加jwt验证:
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                    .AddJwtBearer(options =>
                    {
                        options.TokenValidationParameters = new TokenValidationParameters
                        {
                            ValidIssuer = Configuration["Jwt:Issuer"],
                            ValidAudience = Configuration["Jwt:Audience"],
                            IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SecretKey"]))
                        };
                    });

并在Configure启动

            app.UseAuthentication(); 

 

返回401 身份验证未通过

 

 测试二:先访问GetJToken接口获取token,在访问接口

 

 

 后将获取的token输入到Swagger的文本框中:Bearer +空格+Token

 

 点击确认

 

おすすめ

転載: www.cnblogs.com/fger/p/12094990.html