This commit is contained in:
Luis Martinez 2023-02-14 14:09:09 -05:00
commit 3c4a9e23d1

View File

@ -47,6 +47,28 @@ namespace MSAdminUsuarios.Controllers
} }
[HttpPost("CambiarClave")]
public IActionResult CambiarClave([FromBody] USUARIO us)
{
try
{
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => us.NU_PK_USUMS == u.NU_PK_USUMS);
if (user == null) return BadRequest("Usuario no encontrado.");
string newPass = _encript.EncryptPwd(us.TX_PASSWORD_USUMS!);
user.TX_PASSWORD_USUMS = newPass;
_context.USUARIOSMs.Update(user);
_context.SaveChanges();
return Ok("Contraseña actualizada correctamente");
} catch (Exception e)
{
return Conflict(e.Message);
}
}
[HttpPost("Proveedor")] [HttpPost("Proveedor")]
public IActionResult LoginProveedores([FromBody] LoginModel login) public IActionResult LoginProveedores([FromBody] LoginModel login)
{ {
@ -122,6 +144,19 @@ namespace MSAdminUsuarios.Controllers
return Ok(_encript.DecryptHashTkn(text)); return Ok(_encript.DecryptHashTkn(text));
} }
[HttpGet("TknCambioClave")]
public IActionResult ObtenerTokenCambioClave(int pkUs)
{
try
{
return Ok(TokenCambioClave(pkUs));
} catch (Exception e)
{
return BadRequest(e.Message);
}
}
[AcceptVerbs("GET")] [AcceptVerbs("GET")]
string Token(USUARIO user) string Token(USUARIO user)
{ {
@ -217,6 +252,38 @@ namespace MSAdminUsuarios.Controllers
return Encripter.Cypher(token); return Encripter.Cypher(token);
} }
string TokenCambioClave(int pkUser)
{
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => pkUser == u.NU_PK_USUMS);
if (user == null) throw new Exception("Usuario no encontrado");
//Security key debe ser un environment variable seguro
var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Encripter.HashKey));
var signingCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);
ClaimsIdentity claims = new ClaimsIdentity(new List<Claim>
{
new Claim("user", user.TX_PKDOC_USUMS),
new Claim("loginName", user.TX_LOGINNAME_USUMS),
new Claim("pk", user.NU_PK_USUMS.ToString())
});
var securityTokenDescriptor = new SecurityTokenDescriptor
{
Subject = claims,
Expires = DateTime.Now.AddMinutes(20),
SigningCredentials = signingCredentials
};
var jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
var securityToken = jwtSecurityTokenHandler.CreateToken(securityTokenDescriptor);
var token = jwtSecurityTokenHandler.WriteToken(securityToken);
return Encripter.Cypher(token);
}
} }