.net core webapi

JWT身份认证

 加密

UserAuthModel userAuthModel = new UserAuthModel()
{
id = Guid.NewGuid().ToString(),
userName = userName,
loginTime = DateTime.Now
};
IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
var token = encoder.Encode(userAuthModel, "jjf12554");

解密

var token = context.HttpContext.Request.Headers["token"];
if (token == "")
{
throw new NotImplementedException();
}
try
{
IJsonSerializer serializer = new JsonNetSerializer();
IDateTimeProvider provider = new UtcDateTimeProvider();
IJwtValidator validator = new JwtValidator(serializer, provider);
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder);
var json = decoder.Decode(token, "jjf12554", verify: true);//token为之前生成的字符串
UserAuthModel userAuthModel = (UserAuthModel)JsonConvert.DeserializeObject<UserAuthModel>(json);
Console.WriteLine(json);
}
catch (TokenExpiredException)
{
Console.WriteLine("Token has expired");
}

缓存类

猜你喜欢

转载自www.cnblogs.com/zhaocha/p/9242097.html