using Microsoft.IdentityModel.Tokens;
using System.Text;

namespace Txgy.RBS.Server.WebApi.Register
{
    /// <summary>
    /// 
    /// </summary>
    public static class AuthorizationExtend
    {
        /// <summary>
        /// 支持授权的扩展方法
        /// </summary>
        /// <param name="builder"></param>
        public static void AuthorizationExt(this WebApplicationBuilder builder)
        {
            //JWTTokenOptions tokenOptions = new JWTTokenOptions();
            //builder.Configuration.Bind("JWTTokenOptions", tokenOptions);

            //builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)//Scheme
            //.AddJwtBearer(options =>  //这里是配置的鉴权的逻辑
            //{
            //    options.TokenValidationParameters = new TokenValidationParameters
            //    {
            //        //JWT有一些默认的属性，就是给鉴权时就可以筛选了
            //        ValidateIssuer = true,//是否验证Issuer
            //        ValidateAudience = true,//是否验证Audience
            //        ValidateLifetime = true,//是否验证失效时间
            //        ValidateIssuerSigningKey = true,//是否验证SecurityKey
            //        ValidAudience = tokenOptions.Audience,//
            //        ValidIssuer = tokenOptions.Issuer,//Issuer，这两项和前面签发jwt的设置一致
            //        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenOptions.SecurityKey)),
            //        AudienceValidator = (m, n, z) =>  //可以添加一些自定义的动作
            //        {
            //            return true;
            //        },
            //        LifetimeValidator = (notBefore, expires, securityToken, validationParameters) =>
            //        {
            //            return true;
            //        }
            //    };
            //});

        }
    }
}
