以下代码使用 JwtSecurityTokenHandler。相反,我想使用 JSONWebTokenHandler 来访问令牌并在我的 web api 中使用 iit
[HttpGet]
public Object GetToken()
{
string key = "my_secret_key_12345"; //Secret key which will be used later during validation
var issuer = "SiteURL"; //normally this will be your site URL
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
//Create a List of Claims, Keep claims name short
var permClaims = new List<Claim>();
permClaims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()));
permClaims.Add(new Claim("TenantId", "8B6AAF27-CAB0-4D45-A22A-293A40C7983A"));
permClaims.Add(new Claim("Env", "IDB"));
permClaims.Add(new Claim("UserId", "77777777-7777-7777-7777-777777777777"));
permClaims.Add(new Claim("SessionId", "530c9d45-f371-4950-9fad-de0c6f409abf"));
permClaims.Add(new Claim("EmployeeID", "0"));
//Create Security Token object by giving required parameters
var token = new JwtSecurityToken(issuer, //Issure
issuer, //Audience
permClaims,
expires: DateTime.Now.AddDays(1),
signingCredentials: credentials);
var jwt_token = new JwtSecurityTokenHandler().WriteToken(token);
return new { data = jwt_token };
}