public static void AddCustomTokenAuth(this IServiceCollection services, CustomTokenOption tokenOptions) { #region Authentication Mekanizm services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options => { options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters() { ValidIssuer = tokenOptions.Issuer, ValidAudience = tokenOptions.Audience[0], IssuerSigningKey = SignService.GetSymetricSecurityKey(tokenOptions.SecurityKey), //İmzasını dogruluyoruz. ValidateIssuerSigningKey = true, ValidateAudience = true, ValidateIssuer = true, ValidateLifetime = true, //Token'a ömur verdiğimizde default olarak 5 dk daha ekler //5dk yı farklı zaman aralıklarındakı serverlara kurabılırsın //bunu zero olarak verdiğimizde 5 dk lık sureyı 0'a 0 olarak tanımlıyoruz. ClockSkew = TimeSpan.Zero }; }); #endregion }
//private readonly CustomTokenOption _tokenOption; public AccountController(UserManager <IdentityUser> userManager, IConfiguration configuration, SignInManager <IdentityUser> signInManager)//,IOptions<CustomTokenOption> options { _userManager = userManager; _configuration = configuration; _signInManager = signInManager; _tokenOptions = configuration.GetSection("TokenOption").Get <CustomTokenOption>(); }
public TokenService(IOptions <CustomTokenOption> options, RoleManager <AppRole> roleManager, UserManager <AppUser> userManager) { _tokenOption = options.Value; _roleManager = roleManager; _userManager = userManager; }
public static void AddCustomTokenAuth(this IServiceCollection services, CustomTokenOption tokenOptions) { services.AddAuthentication(option => { option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; //Elimizdeki iki şemayı burda birbiri ile konuşturuyoruz. option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, opts => { //servise.Add diyerek eklemiş bir nesneden instance almka için kullanılır. opts.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters() { //NetCoreApp' taki appsettings.json dosyasındaki alanlar ilgili alanlara setlenir ValidIssuer = tokenOptions.Issuer, //Token'daki Audince dizi olduğu için sıfırıncı indis'ten instance aldık ValidAudience = tokenOptions.Audience[0], IssuerSigningKey = SingService.GetSymmetricSecuriyKey(tokenOptions.SecurityKey), //Issuer İmzası Doğrulanır ValidateIssuerSigningKey = true, //imzayı doğrular ValidateAudience = true, //Audice doğrular ValidateIssuer = true, //Issuer doğrular ValidateLifetime = true, //Token Ömrünü kontrol eder //Token ömrüne otomatik olarak verilen sürenin 5dk fazlasını verir. Zero komutu o 5dk lık default süreyi kaldırır. //İsteğe bağlı olarak eklenir. ClockSkew = TimeSpan.Zero }; }); }
public static void AddCustomTokenAuth(this IServiceCollection services, CustomTokenOption tokenOptions) { services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, opt => { opt.TokenValidationParameters = new TokenValidationParameters() { ValidIssuer = tokenOptions.Issuer, ValidAudience = tokenOptions.Audience[0], IssuerSigningKey = SignService.GetSymmetricSecurityKey(tokenOptions.SecurityKey), ValidateIssuerSigningKey = true, ValidateAudience = true, ValidateIssuer = true, ValidateLifetime = true, ClockSkew = TimeSpan.Zero }; }); }
public static void AddCustomTokenAuth(this IServiceCollection services, CustomTokenOption tokenOptions) { // 2 ayrı üyelik sistemi olabilir -> bayiler için ayrı bir üyelik normal kullanıcılar için farklı login ekranları services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, opts => { opts.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters() { ValidIssuer = tokenOptions.Issuer, ValidAudience = tokenOptions.Audience[0], IssuerSigningKey = SignService.GetSymmetricSecurityKey(tokenOptions.SecurityKey), ValidateIssuerSigningKey = true, ValidateAudience = true, ValidateIssuer = true, ValidateLifetime = true, ClockSkew = TimeSpan.Zero }; }); }
public TokenService(UserManager <UserApp> userManager, IOptions <CustomTokenOption> options) { _userManager = userManager; _tokenOption = options.Value; }