DEV Community 👩‍💻👨‍💻

Verónica Guamán
Verónica Guamán

Posted on

Cambiar el valor NBF del JWT en ASP.NET MVC API -C#

NBF en JWT significa Not Before

  • Claim Name: "nbf"
  • Claim Description: Not Before

Obtiene o establece la hora no anterior para el token de seguridad. Este valor debe estar en UTC.
Es decir nbf: Define el tiempo antes del cual el JWT NO DEBE ser aceptado para su procesamiento.

Si por algún motivo tenemos o debemos cambiar el valor de NFB podemos hacerlo de la siguiente forma.

En la configuración para obtener nuestro token vamos a tener algo parecido a esto:

private string generateJwtToken(User user)
        {
            // generate token that is valid for 7 days
            var tokenHandler = new JwtSecurityTokenHandler();
            var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new[] { new Claim("id", user.Id.ToString()) }),
                NotBefore = DateTime.UtcNow.AddMinutes(5),
                Expires = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);
            return tokenHandler.WriteToken(token);
        }
Enter fullscreen mode Exit fullscreen mode

dentro de esta configuración la línea antes de especificar la expiración vamos a colocar la siguiente línea.
NotBefore = DateTime.UtcNow.AddMinutes(5)
Agregamos el tiempo en el que queremos que esté disponible nuestro token, en este caso de ejemplo le estoy agregando 5 minutos a la hora y fecha actual.

Y ya podemos observar los cambios generando el token y probándolo en https://jwt.io/

Eso es todo por hoy, espero que te sirvan de mucho estos recursos.

Puedes seguirme en Twitter, Instagram o Facebook para más contenido técnico, consejos y más.

Top comments (0)

🌚 Friends don't let friends browse without dark mode.

Just kidding, it's a personal preference. But you can change your theme, font, etc. in your settings.

The more you know. 🌈