//Guarda token de login (S) public async Task almacenarTokenLogin(ProyectoTokenLogin token) { using (var db = new MapeoProyecto()) { db.tokenLogin.Add(token); await db.SaveChangesAsync(); } }
//Elimina el token al cerrar sesion public async Task eliminarToken(ProyectoTokenLogin token) { using (var db = new MapeoProyecto()) { ProyectoTokenLogin tokenC = db.tokenLogin.Where(x => x.IdUsuario == token.IdUsuario).FirstOrDefault(); db.tokenLogin.Remove(tokenC); await db.SaveChangesAsync(); } }
public async Task <IHttpActionResult> delEliminarToken(string usuario) { try { ProyectoRegistro user = new LProyecto().mostrarDatosLogin(usuario); int idUsuario = user.IdUsuario; ProyectoTokenLogin token = new ProyectoTokenLogin(); token.IdUsuario = idUsuario; await new LProyecto().eliminarToken(token); return(Ok("El token fue eliminado")); }catch (Exception ex) { return(BadRequest("el usuario no existe")); } }
public static string GenerateTokenJwt(ProyectoRegistro usuario) { //TODO: appsetting for Demo JWT - protect correctly this settings //Llaves para permitir manipulación o cambios var secretKey = ConfigurationManager.AppSettings["JWT_SECRET_KEY"]; var audienceToken = ConfigurationManager.AppSettings["JWT_AUDIENCE_TOKEN"]; var issuerToken = ConfigurationManager.AppSettings["JWT_ISSUER_TOKEN"]; var expireTime = ConfigurationManager.AppSettings["JWT_EXPIRE_MINUTES"]; var securityKey = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey)); var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature); // create a claimsIdentity ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, usuario.Usuario), new Claim(ClaimTypes.Email, usuario.Correo) }); // create token to the user var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); //Se crea objeto que tiene el estandar JWT var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken( audience: audienceToken, issuer: issuerToken, subject: claimsIdentity, notBefore: DateTime.Now, //fecha de creación del token expires: DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)), //fecha de expiración de token signingCredentials: signingCredentials); var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken); ProyectoTokenLogin token = new ProyectoTokenLogin(); token.FechaGenerado = DateTime.Now; token.FechaVigencia = DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)); token.IdUsuario = usuario.IdUsuario; token.Token = jwtTokenString; new LProyecto().guardarToken(token); return(jwtTokenString); }
public async Task guardarToken(ProyectoTokenLogin token) { await new DaoProyecto().almacenarTokenLogin(token); }
public async Task eliminarToken(ProyectoTokenLogin token) { await new DaoProyecto().eliminarToken(token); }