diff options
| author | transtrike <transtrike@gmail.com> | 2021-02-15 19:06:14 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-02-15 19:06:14 +0200 |
| commit | 4c03712af14c37718b7be5b23fcadeb86f2a2191 (patch) | |
| tree | 0c6b5a592244e5b2574afa9e4919d4a3111eea34 /src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs | |
| parent | 09fc4603e82f69c926f9457085aa3fa48bb3939c (diff) | |
| download | DevHive-4c03712af14c37718b7be5b23fcadeb86f2a2191.tar DevHive-4c03712af14c37718b7be5b23fcadeb86f2a2191.tar.gz DevHive-4c03712af14c37718b7be5b23fcadeb86f2a2191.zip | |
Code Analyzer added to all csproj; Removed unnessessary code; Fixed formatting
Diffstat (limited to 'src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs')
| -rw-r--r-- | src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs new file mode 100644 index 0000000..03d4b11 --- /dev/null +++ b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureJwt.cs @@ -0,0 +1,54 @@ +using System.Text; +using System.Threading.Tasks; +using DevHive.Services.Options; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Tokens; + +namespace DevHive.Web.Configurations.Extensions +{ + public static class ConfigureJwt + { + public static void JWTConfiguration(this IServiceCollection services, IConfiguration configuration) + { + services.AddSingleton(new JwtOptions(configuration + .GetSection("AppSettings") + .GetSection("Secret") + .Value)); + + // Get key from appsettings.json + var key = Encoding.ASCII.GetBytes(configuration + .GetSection("AppSettings") + .GetSection("Secret") + .Value); + + // Setup Jwt Authentication + services.AddAuthentication(x => + { + x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + }) + .AddJwtBearer(x => + { + x.Events = new JwtBearerEvents + { + OnTokenValidated = context => + { + // TODO: add more authentication + return Task.CompletedTask; + } + }; + x.RequireHttpsMetadata = false; + x.SaveToken = true; + x.TokenValidationParameters = new TokenValidationParameters + { + //ValidateIssuerSigningKey = false, + IssuerSigningKey = new SymmetricSecurityKey(key), + ValidateIssuer = false, + ValidateAudience = false + }; + }); + } + } +} |
