diff options
author | HombreLaser <sebastian-440@live.com> | 2022-11-27 12:46:26 -0600 |
---|---|---|
committer | HombreLaser <sebastian-440@live.com> | 2022-11-27 12:46:26 -0600 |
commit | 3da900a30e788d0acf2fcee7dba2aecdb16aab43 (patch) | |
tree | ec8312f37d26f81b22fb498728572f08983d67e5 /Policies | |
parent | 45eb6bcac6eaa57efba955dd45aad46f988aaf35 (diff) |
Añadido logout
Diffstat (limited to 'Policies')
-rw-r--r-- | Policies/CorrectTokenHandler.cs | 29 | ||||
-rw-r--r-- | Policies/CorrectTokenRequirement.cs | 5 |
2 files changed, 34 insertions, 0 deletions
diff --git a/Policies/CorrectTokenHandler.cs b/Policies/CorrectTokenHandler.cs new file mode 100644 index 0000000..7663ec8 --- /dev/null +++ b/Policies/CorrectTokenHandler.cs @@ -0,0 +1,29 @@ +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Authorization; +using BackendPIA.Models; + +namespace BackendPIA.Policies { + public class CorrectTokenHandler : AuthorizationHandler<CorrectTokenRequirement> { + private readonly UserManager<UserAccount> _manager; + + public CorrectTokenHandler(UserManager<UserAccount> manager) { + _manager = manager; + } + + protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CorrectTokenRequirement requirement) { + if(context.Resource is HttpContext httpContext) { + var user = _manager.FindByEmailAsync(context.User.Claims.Where(c => c.Type.Contains("email")).First().Value).Result; + + if(user != null) { + string token = httpContext.Request.Headers["Authorization"].ToString().Split(' ')[1]; + + if(user.CurrentToken != null && user.CurrentToken == token) + context.Succeed(requirement); + } + } + + return Task.CompletedTask; + } + } +}
\ No newline at end of file diff --git a/Policies/CorrectTokenRequirement.cs b/Policies/CorrectTokenRequirement.cs new file mode 100644 index 0000000..d89615f --- /dev/null +++ b/Policies/CorrectTokenRequirement.cs @@ -0,0 +1,5 @@ +using Microsoft.AspNetCore.Authorization; + +namespace BackendPIA.Policies { + public class CorrectTokenRequirement : IAuthorizationRequirement{} +}
\ No newline at end of file |