public JsonWebToken Post([FromBody] Ah_Usuarios userLogin) { var user = _unitOfWork.Ah_Usuarios.uspValidateUser(userLogin.UserName, userLogin.Password); if (user == null || user.IdUsuario == "") { throw new UnauthorizedAccessException(); } var token = new JsonWebToken { Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(3)), Expires_in = 180 //minutes }; return(token); }
public string CreateToken(Ah_Usuarios user, DateTime expiry) { JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); var identity = new ClaimsIdentity(new List <Claim>() { new Claim(ClaimTypes.Name, $"{user.Nombres}"), new Claim(ClaimTypes.NameIdentifier, $"{user.ApPaterno} {user.ApMaterno}"), new Claim(ClaimTypes.GivenName, $"{user.IdCentroSalud}"), new Claim(ClaimTypes.Role, user.IdTipoUsu), new Claim(ClaimTypes.Surname, user.IdAmbulancia), new Claim(ClaimTypes.PrimarySid, user.IdUsuario.ToString()) }, "Custom"); SecurityToken token = tokenHandler.CreateJwtSecurityToken(new SecurityTokenDescriptor { Audience = _audience, Issuer = _issuer, SigningCredentials = new SigningCredentials(_key, _algoritm), Expires = expiry.ToUniversalTime(), Subject = identity }); return(tokenHandler.WriteToken(token)); }