summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2022-11-16 19:57:13 -0600
committerHombreLaser <sebastian-440@live.com>2022-11-16 19:57:13 -0600
commit7885b71dad3a2dea21b64532f6a825ce033bf0a6 (patch)
tree352a1500a0d4642b3b12c8e8a4fff9e842b059b9
parent00acb66e39f7b178d58f3f0ec298aec73d7aced9 (diff)
AƱadidos toques finales
-rw-r--r--Controllers/MessageController.cs10
-rw-r--r--Controllers/UsersController.cs8
-rw-r--r--Controllers/WeatherForecastController.cs2
-rw-r--r--Program.cs10
4 files changed, 23 insertions, 7 deletions
diff --git a/Controllers/MessageController.cs b/Controllers/MessageController.cs
index bacaf5c..2f4a8d8 100644
--- a/Controllers/MessageController.cs
+++ b/Controllers/MessageController.cs
@@ -9,9 +9,15 @@ namespace IdentityAPI.Controllers {
public class MessageController : ControllerBase {
public MessageController() {}
- [HttpGet]
- public async Task<IActionResult> Show() {
+ [HttpGet("message_authenticated")]
+ public IActionResult AuthenticationMessage() {
return Ok(new { message = "Authentication succesful" });
}
+
+ [HttpGet("message_anonymous")]
+ [AllowAnonymous]
+ public IActionResult AnonymousMessage() {
+ return Ok(new { message = "Anonymous detected." });
+ }
}
} \ No newline at end of file
diff --git a/Controllers/UsersController.cs b/Controllers/UsersController.cs
index d5dded5..5483a6b 100644
--- a/Controllers/UsersController.cs
+++ b/Controllers/UsersController.cs
@@ -54,6 +54,14 @@ namespace IdentityAPI.Controllers {
return StatusCode(400, new { error = "Invalid request body" });
}
+ [HttpGet("refresh")]
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
+ public async Task<IActionResult> Refresh() {
+ var user = await _manager.FindByEmailAsync(HttpContext.User.Claims.Where(c => c.Type.Contains("email")).FirstOrDefault().Value);
+
+ return Ok(new { Token = GenerateToken(user) });
+ }
+
private string GenerateToken(IdentityUser user) {
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
diff --git a/Controllers/WeatherForecastController.cs b/Controllers/WeatherForecastController.cs
index f7fdcdf..1a64e77 100644
--- a/Controllers/WeatherForecastController.cs
+++ b/Controllers/WeatherForecastController.cs
@@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Authorization;
namespace IdentityAPI.Controllers;
[ApiController]
-[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
@@ -22,6 +21,7 @@ public class WeatherForecastController : ControllerBase
}
[HttpGet(Name = "GetWeatherForecast")]
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
diff --git a/Program.cs b/Program.cs
index a69992d..aa8c742 100644
--- a/Program.cs
+++ b/Program.cs
@@ -83,10 +83,12 @@ builder.Services.Configure<IdentityOptions>(options =>
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
-// Identity configuration.
-// builder.Services.Configure<IdentityOptions>(options => {
-
-// })
+// CORS configuration
+builder.Services.AddCors(options => {
+ options.AddDefaultPolicy(builder => {
+ builder.WithOrigins("https://apirequest.io").AllowAnyMethod().AllowAnyHeader();
+ });
+ });
var app = builder.Build();