Я знаю.Я знаю.Множество вопросов с таким точным названием.Но из всех, на которые я смотрел, я не могу найти тот, который создает JWT, используя List<Claim>
, issuer
и audience
.
private string GetTokenString()
{
var claims = new List<Claim>()
{
new Claim("claim1", "foo-anything"),
new Claim("claim2", "bar-anything")
};
string keyValue = "1234567890qwertyuiopasdfghjklzxcvbnm"; // NOT THE REAL KEY (changed for this SO question)
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keyValue));
var jwtToken = new JwtSecurityToken
(
issuer: "https://xxxxxx.net",
audience: "https://www.xxxxxx.com",
claims: claims,
signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature),
expires: DateTime.Now.AddMinutes(30)
);
var handler = new JwtSecurityTokenHandler();
string tokenString = handler.WriteToken(jwtToken);
return tokenString;
}
Тогда, если явозьмите tokenString
и подключите его к https://jwt.io/, Я получу
Недопустимая подпись
Что-то не так с тем, как я создаю JWT?