我想创建一个示例控制台应用程序来生成以下格式的JWT令牌。我创建了一个简单的控制台应用程序来生成JWT,但在如何将所有必需的字段添加到上有点困难。
下面是我的控制台应用程序代码示例。
Console.WriteLine("");
string key = "dummykey";
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
var credentials = new SigningCredentials
(securityKey, SecurityAlgorithms.HmacSha256Signature);
var header = new JwtHeader(credentials);
//Some dummy PayLoad
var payload = new JwtPayload
{
{ "firstname ", "lastname "},
{ "scope", "read,write"},
};
var secToken = new JwtSecurityToken(header, payload);
var handler = new JwtSecurityTokenHandler();
var tokenString = handler.WriteToken(secToken);
Console.WriteLine("JWT Token is : ");
Console.WriteLine(tokenString);
Console.ReadLine();
上面的代码生成了一个JWT,格式如下。
HEADER:ALGORITHM & TOKEN TYPE
{
"alg": "http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
"typ": "JWT"
}
PAYLOAD:DATA
{
"firstname ": "lastname ",
"scope": "read,write"
}
VERIFY SIGNATURE
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
)
我想要它如下。
{
"schema":"value",
"majver":1,
"minver":0,
"sub":"value",
"scope":"read,write",
"iss":"value",
"exp":date,
"nbf":date,
"iat":date,
"jti":"value",
"emp_id":"value",
"act":
{
"typ":"value",
"sub":"value"
}
}