0
から署名を取得できません:は、私が.NETでJWT認証を使用しようとしていると私はこのように見える結果を必要JwtSecurityToken
ヘッダー: {"alg":"HS512"}
ペイロード:
{"sub":"SomeSubject","nbf":1458315105,"exp":1458316305,"iat":1458315705}
私はJWT署名トークンを取得するためのfollwoingコードを書いた:
public async Task<string> GetJWTToken(string user)
{
var now = DateTime.UtcNow;
JwtHeader jwtHeader = new JwtHeader();
jwtHeader.Add("alg", JwtAlgorithms.HMAC_SHA512);
JwtPayload payload = new JwtPayload();
payload.Add("sub", user);
payload.Add("exp", ConvertToUnixTimestamp(now.AddMinutes(10)));
payload.Add("nbf",ConvertToUnixTimestamp(now.AddMinutes(-10)));
payload.Add("iat",ConvertToUnixTimestamp(now));
JwtSecurityToken toekn = new JwtSecurityToken(jwtHeader, payload);
SigningCredentials cred = new SigningCredentials(new InMemorySymmetricSecurityKey(Encoding.UTF8.GetBytes("SomeKey")), "http://www.w3.org/2001/04/xmldsig-more#hmac-sha512", "http://www.w3.org/2001/04/xmlenc#sha512");
//what's next?
return finalResult;
}
このコードでは、ヘッダーとペイロードを暗号化するだけで、署名は得られません。私は多くの場所を見ましたが、同様のペイロードとヘッダーを生成する例は見つかりませんでした。
1-どのように署名資格情報をtoeken
に追加できますか。 SigningCredentials、SigningTokenおよびSigningKeysは設定できません。署名の資格情報がどこに適合するかは不明です。
2-その後、署名はどのように生成されますか?