title: What is the different between System.IdentityModel.Tokens & Microsoft.IdentityModel.Tokens? Which one should I use in an ASP.NET Core application?
body: <p>We can find two separate packages in the NuGet gallery:</p>
  
  <ul>
  <li><a href="https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/" rel="noreferrer">System.IdentityModel.Tokens.Jwt</a></li>
  <li><a href="https://www.nuget.org/packages/Microsoft.IdentityModel.Tokens/" rel="noreferrer">Microsoft.IdentityModel.Tokens</a></li>
  </ul>
  
  <p>Both seem to receive regularly updated and have millions of downloads.</p>
  
  <p>I know that <code>System.IdentityModel.Tokens.Jwt</code> has a dependency on <code>Microsoft.IdentityModel.Tokens</code>, but I don't know which one should I use in my ASP.NET Core 2.0 application.</p>
  
  <p>I'm using <code>Microsoft.IdentityModel.Tokens</code> now and it is good enough to create JWT tokens and validate them. </p>
  
  <p>Do I need to add <code>System.IdentityModel.Tokens.Jwt</code> to my project and change any code?</p>
  
  <p>PS: I am not using Azure services in this project.</p>