我正在做一个基于.Net 4.0框架并实现ASP.NET Web的项目。我的要求是解码进入API的JWT令牌。我在探索“使用System.IdentityModel.Tokens.JWT”,但这似乎只与.Net 4.5兼容。如何在基于.Net Framework4.0的项目中访问JWT函数?
发布于 2019-06-28 16:12:17
经过反复试验,我发现jose-jwt支持.NET4
发布于 2021-01-31 21:42:02
我在做一个JWT4项目,发现.net -Dotnet很有帮助。这是docs。
可以使用nuget轻松安装。有关NUGET的详细信息,请访问here
Install-Package JWT -Version 7.3.1
它从3.5开始支持.net。解码token非常简单。以下是文档中的示例。
const string token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGFpbTEiOjAsImNsYWltMiI6ImNsYWltMi12YWx1ZSJ9.8pwBI_HtXqI3UgQHQ_rDRnSQRxFL1SR8fbQoS-5kM5s";
const string secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";
try
{
IJsonSerializer serializer = new JsonNetSerializer();
var provider = new UtcDateTimeProvider();
IJwtValidator validator = new JwtValidator(serializer, provider);
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); // symmetric
IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithm);
var json = decoder.Decode(token, secret, verify: true);
Console.WriteLine(json);
}
catch (TokenExpiredException)
{
Console.WriteLine("Token has expired");
}
catch (SignatureVerificationException)
{
Console.WriteLine("Token has invalid signature");
}
https://stackoverflow.com/questions/53593208
复制相似问题