//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();
     }
 }
Пример #3
0
 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"));
     }
 }
Пример #4
0
        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);
        }
Пример #5
0
 public async Task guardarToken(ProyectoTokenLogin token)
 {
     await new DaoProyecto().almacenarTokenLogin(token);
 }
Пример #6
0
 public async Task eliminarToken(ProyectoTokenLogin token)
 {
     await new DaoProyecto().eliminarToken(token);
 }