|
- using Microsoft.AspNetCore.Authentication.JwtBearer;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.IdentityModel.Tokens;
- using System;
- using System.Security.Claims;
- using System.Text;
-
- namespace Api.Start
- {
- public static class AuthRegister
- {
- public static void RegisterAuth(this IServiceCollection services, IConfiguration configuration)
- {
-
- services.AddAuthentication(options =>
- {
- options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
- options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
- }).AddJwtBearer(options =>
- {
- var secret = configuration.GetValue<string>("Jwt:Key");
- var issuer = configuration.GetValue<string>("Jwt:Issuer");
-
-
- options.IncludeErrorDetails = true;
- options.TokenValidationParameters = new TokenValidationParameters
- {
- ValidateIssuer = true,
- ValidIssuer = issuer,
- ValidateAudience = true,
- ValidAudience = issuer,
- ValidateIssuerSigningKey = true,
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secret)),
- ValidateLifetime = true,
- ClockSkew = TimeSpan.Zero,
- RoleClaimType = ClaimTypes.Role,
- SaveSigninToken = true,
- };
- });
- }
-
- public static void ConfigureAuthentication(this IApplicationBuilder app)
- {
- app.UseAuthentication();
- app.UseAuthorization();
-
- }
- }
- }
|