using APT.Infrastructure.Core;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;
using System;
using System.Text;
using APT.Infrastructure.Api;
namespace APT.NW.WebApi
{
    public static class BearerAuthHanddler
    {
        public static void RegisterBearAuth(this IServiceCollection services)
        {
            //services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            //   .AddJwtBearer(options =>
            //   {
            //       options.TokenValidationParameters = new TokenValidationParameters
            //       {
            //           ValidateIssuer = true,//是否验证Issuer
            //           ValidateAudience = true,//是否验证Audience
            //           ValidateLifetime = true,//是否验证失效时间
            //           ClockSkew = TimeSpan.FromSeconds(600),
            //           ValidateIssuerSigningKey = true,//是否验证SecurityKey
            //           ValidAudience = "leedarson.com",//Audience
            //           ValidIssuer = "leedarson.com",//Issuer，这两项和前面签发jwt的设置一致
            //           IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(ConfigurationManager.AppSettings["SecurityKey"]))//拿到SecurityKey
            //       };
            //   });
            services.AddAuthentication("Bearer")
              .AddJwtBearer("Bearer", options =>
              {
                  options.Authority = ConfigurationManager.AppSettings["IdentityServer"];
                  options.RequireHttpsMetadata = false;
                  options.Audience = ConfigurationManager.AppSettings["Scope"];
              });
        }
    }
}
