私はJWTトークンを実装しようとしていますが、 IDX10640:コンパクトjson文字列にトークンを書き込もうとすると、アルゴリズムがサポートされていません。 'http://www.w3.org/2001/04/xmldsig-more#hmac-sha256'。DNX Core 5.0 JwtSecurityTokenHandler "IDX10640:アルゴリズムがサポートされていません: 'http://www.w3.org/2001/04/xmldsig-more#hmac-sha256'"
const string issuer = "issuer";
const string audience = "audience";
byte[] keyForHmacSha256 = new byte[32];
new Random().NextBytes(keyForHmacSha256);
var claims = new List<Claim> { new Claim("deviceId", "12") };
var now = DateTime.UtcNow;
var expires = now.AddHours(1);
var signingCredentials = new SigningCredentials(
new SymmetricSecurityKey(keyForHmacSha256),
SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.Sha256Digest);
var token = new JwtSecurityToken(issuer, audience, claims, now, expires, signingCredentials);
return _tokenHandler.WriteToken(token);
これを解決するためのアイデアはありますか?
アップデート1:
上記のエラーが "System.IdentityModel.Tokens.Jwt" で発生: "5.0.0-beta7-208241120"
アップデート2:
更新されたコード
の次のビットで行うことができますから、毎晩nugetパッケージでテスト 私はこの同じ問題を経験しています。あなたは 'System.IdentityModel.Tokens.Jwt'ライブラリの' 5.0.0-beta7-208241120'バージョンを使用していますか? –
はい、私が唯一の人ではないと聞いて良かったです... – sboulema
1)なぜSystem.Randomを使って暗号鍵を作るのですか? 2)128バイトのキーは意味をなさない。 128ビットのキー(16バイト)が必要でしたか? 256ビット/ 32バイトもまともな選択肢になります。 3)現地時間を使うのもかなり奇妙です。 – CodesInChaos