title: Why JWT contains EXP claim even if I set Expires to null?
body: <p>I need the immortal JWT token. Of course I could set some big value to Expires, but I prefer do not have exp claim in my token at all. Standard .net core CreateEncodedJwt allows to pass null in expires, notBefore, issuedAt. I pass null for all of them, and my token contains exp token (+1 hour). What is going on?!</p>
  
  <pre class="lang-cs prettyprint-override"><code>var securityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("FF804E8A-2A0E-4F94-A6F5-8325822F8DF5"));
  
  var claims = new List&lt;Claim&gt;
  {
      new Claim("type1", "value1"),
      new Claim("type2", "value2")
  
  };
  
  var token = new JwtSecurityTokenHandler().CreateEncodedJwt(
      issuer: null,
      audience: null,
      subject: new ClaimsIdentity(claims),
      notBefore: null,
      issuedAt: null,
      expires: null,
      signingCredentials: new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256));
  </code></pre>
  
  <p>This is tool for parsing: <a href="https://jwt.io" rel="nofollow noreferrer">https://jwt.io</a></p>
  
  <p>This is my token: </p>
  
  <blockquote>
    <p>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlMSI6InZhbHVlMSIsInR5cGUyIjoidmFsdWUyIiwibmJmIjoxNTY1NDI5MzY2LCJleHAiOjE1NjU0MzI5NjYsImlhdCI6MTU2NTQyOTM2Nn0.UvJiOQNO_yMzdenf5jAotPHj7zrcEUApraezzcVSicA</p>
  </blockquote>
  
  <p>This is how it looks inside:</p>
  
  <blockquote>
    <p>{
      "type1": "value1",
      "type2": "value2",
      "nbf": 1565429366,
      "exp": 1565432966,
      "iat": 1565429366
    }</p>
  </blockquote>
  
  <p>Please help to get rid nbf, exp, iat. Thanks in advance!</p>