summaryrefslogtreecommitdiff
path: root/Program.cs
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2022-11-15 21:52:57 -0600
committerHombreLaser <sebastian-440@live.com>2022-11-15 21:52:57 -0600
commit00acb66e39f7b178d58f3f0ec298aec73d7aced9 (patch)
treeb2340ca37d815a4da9870c3ecd483e8dbcf95a44 /Program.cs
parent820c3a882c60127338293c1eee4059b2dfd535df (diff)
Añadida autenticación
Diffstat (limited to 'Program.cs')
-rw-r--r--Program.cs54
1 files changed, 44 insertions, 10 deletions
diff --git a/Program.cs b/Program.cs
index 28b00d9..a69992d 100644
--- a/Program.cs
+++ b/Program.cs
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
+using Microsoft.OpenApi.Models;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
@@ -15,19 +16,52 @@ builder.Services.AddControllers();
builder.Services.AddDbContext<ApplicationDbContext>(o => o.UseNpgsql(builder.Configuration.GetConnectionString("ApplicationDbContext")));
builder.Services.AddIdentity<IdentityUser, IdentityRole>()
// .AddRoles<IdentityRole>()
- .AddEntityFrameworkStores<ApplicationDbContext>();
+ .AddEntityFrameworkStores<ApplicationDbContext>()
+ .AddDefaultTokenProviders();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
-builder.Services.AddSwaggerGen();
+builder.Services.AddSwaggerGen(c => {
+ c.SwaggerDoc("v1", new OpenApiInfo { Title = "IdentityAPI", Version = "v1" });
+
+ c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
+ {
+ Name = "Authorization",
+ Type = SecuritySchemeType.ApiKey,
+ Scheme = "Bearer",
+ BearerFormat = "JWT",
+ In = ParameterLocation.Header
+ });
+
+ c.AddSecurityRequirement(new OpenApiSecurityRequirement
+ {
+ {
+ new OpenApiSecurityScheme
+ {
+ Reference = new OpenApiReference
+ {
+ Type = ReferenceType.SecurityScheme,
+ Id = "Bearer"
+ }
+ },
+ new String[]{}
+ }
+ });
+ });
// Autenticación con JSON web tokens.
-builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
- .AddJwtBearer(options => {
- options.TokenValidationParameters = new TokenValidationParameters {
- ValidateLifetime = true,
- ValidateIssuer = true,
- ValidIssuer = builder.Configuration["Jwt:Issuer"],
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))
- };
+builder.Services.AddAuthorization();
+builder.Services.AddAuthentication(options => {
+ options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
+ options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
+ options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
+ })
+ .AddJwtBearer(options => {
+ options.TokenValidationParameters = new TokenValidationParameters {
+ ValidateIssuer = false,
+ ValidateAudience = false,
+ ValidateLifetime = true,
+ IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"])),
+ ClockSkew = TimeSpan.Zero
+ };
});
builder.Services.Configure<IdentityOptions>(options =>
{