public static void AddTokenBasedAuthentication(this IServiceCollection services, IConfiguration configuration) { var tokenOption = new TokenConfigOption(); configuration.GetSection("TokenOption").Bind(tokenOption); System.Console.WriteLine(tokenOption); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = tokenOption.Issuer, ValidAudience = tokenOption.Audience, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenOption.SecretKey)) }; }); }
public AccountController (UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, RoleManager <IdentityRole> roleManager, IOptions <TokenConfigOption> tokenOptions) { this.userManager = userManager; this.signInManager = signInManager; this.tokenOptions = tokenOptions.Value; this.roleManager = roleManager; }
public static string Create(TokenConfigOption option, string name, IEnumerable <string> userRoles, IEnumerable <Claim> userClaims, int expireHours = 1) { var signingCredential = GetSigningCreadential(option.SecretKey); var claims = GetClaims(name, userRoles, userClaims); var expireOn = DateTime.Now.AddHours(expireHours); var token = GenerateToken(option.Issuer, option.Audience, claims, signingCredential, expireOn); return(token); }