public AccountController(IGameService gameService, UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, IOptions <JwtSettingsOptions> options) { _gameService = gameService; _userManager = userManager; _signInManager = signInManager; _jwtSettings = options.Value; }
public void ConfigureServices(IServiceCollection services) { services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddDbContext <UsersContext>(options => options.UseSqlServer( Configuration.GetConnectionString("IdentityConnection"))); services.AddMvc(); services.AddDefaultIdentity <IdentityUser>( options => options.Password = new PasswordOptions { RequireDigit = false, RequiredLength = 6, RequireLowercase = true, RequireUppercase = false, RequireNonAlphanumeric = false }) .AddEntityFrameworkStores <UsersContext>(). AddDefaultTokenProviders(); IConfigurationSection settingsSection = Configuration.GetSection("JwtSettings"); services.Configure <JwtSettingsOptions>(settingsSection); JwtSettingsOptions jwtOptions = settingsSection.Get <JwtSettingsOptions>(); byte[] key = Encoding.ASCII.GetBytes(jwtOptions.TokenSecret); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.RequireHttpsMetadata = false; options.SaveToken = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; }); services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; }); services.AddServicesFromBL(Configuration); }
public static IServiceCollection AddBlackJackJwtIdentity(this IServiceCollection services, IConfiguration configuration) { IConfigurationSection settingsSection = configuration.GetSection("JwtSettings"); services.Configure <JwtSettingsOptions>(settingsSection); JwtSettingsOptions jwtOptions = settingsSection.Get <JwtSettingsOptions>(); byte[] key = Encoding.ASCII.GetBytes(jwtOptions.TokenSecret); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.RequireHttpsMetadata = false; options.SaveToken = true; options.ClaimsIssuer = jwtOptions.Issuer; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = false, ValidIssuer = jwtOptions.Issuer, ValidAudience = jwtOptions.Audience, ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateLifetime = true, ValidateAudience = false }; }); services.AddDbContext <UserDbContext>(); services.AddIdentity <IdentityUser, IdentityRole>() .AddEntityFrameworkStores <UserDbContext>(); return(services); }
public void InstallServices(IServiceCollection services, IConfiguration configuration) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); var jwtOptions = new JwtSettingsOptions(); configuration.GetSection(nameof(JwtSettingsOptions)).Bind(jwtOptions); services.AddSingleton(jwtOptions); var tokenParameters = new TokenValidationParameters() { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(System.Text.Encoding.ASCII.GetBytes(jwtOptions.Secret)), ValidateIssuer = false, ValidateAudience = false, RequireExpirationTime = false, ValidateLifetime = true }; services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(x => { x.SaveToken = true; x.TokenValidationParameters = tokenParameters; }); // services.AddAuthorization(options=> // { // options.AddPolicy("PolicyClaimViewer",builder =>{ // builder.RequireClaim("policiesclaim.view","true"); // }); // }); services.AddSwaggerGen(x => { x.SwaggerDoc("v1", new OpenApiInfo() { Title = "TweetBook API", Version = "v1" }); x.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer Schema", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); x.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new List <string>() } }); }); services.AddScoped <IIdentityService, IdentityService>(); services.AddScoped <IPostService, PostService>(); }
public IdentityService(UserManager <IdentityUser> userManager, JwtSettingsOptions jwtOptions, RoleManager <IdentityRole> roleManager) { _userManager = userManager; _jwtOptions = jwtOptions; _roleManager = roleManager; }
public static IServiceCollection AddAuthentication(this IServiceCollection services, JwtSettingsOptions option) { services.AddSingleton <IJwtTokenHandler, JwtTokenHandler>(); JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, configureOptions => { configureOptions.TokenValidationParameters = new TokenValidationParameters() { // 验证签发方密钥 ValidateIssuerSigningKey = option.ValidateIssuerSigningKey.Value, // 签发方密钥 IssuerSigningKey = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(option.IssuerSigningKey)), // 验证签发方 ValidateIssuer = option.ValidateIssuer.Value, // 设置签发方 ValidIssuer = option.ValidIssuer, // 验证签收方 ValidateAudience = option.ValidateAudience.Value, // 设置接收方 ValidAudience = option.ValidAudience, // 验证生存期 ValidateLifetime = option.ValidateLifetime.Value, // 过期时间容错值 ClockSkew = TimeSpan.FromSeconds(option.ClockSkew.Value), }; configureOptions.SaveToken = true; }); return(services); }
public AuthenticationController(IAuthenticationService authenticationService, IOptions <JwtSettingsOptions> options) { _authenticationService = authenticationService; _jwtSettings = options.Value; }
public UserController(IUnitOfWork unitOfWork, IOptions <JwtSettingsOptions> jwtSettingsOptions) { _unitOfWork = unitOfWork; _jwtSettings = jwtSettingsOptions.Value; }