大家好,又见面了,我是你们的朋友全栈君。
好久没更新了,最近确实比较忙,现在弄完后,第一时间来记录一下最近学到的一些东西
我这里就以一个新的mvc项目来演示,创好项目后,在nuget包管理器中,下载jwt,不要下错了哈
等待安装完成
2.1.生成jwt_token
导入这些命名空间
,然后进行生成操作
public string GetJWT_Token()
{
var payload = new Dictionary<string, object>
{
{ "claim1", 0 },
{ "claim2", "claim2-value" }
};
const string secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";
IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); // symmetric
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
var token = encoder.Encode(payload, secret);
return token;
}
这里简单测试一下用postman或者浏览器直接访问都可以,我这里就直接浏览器测试了,生成成功后会得到一串字符串
可以看到这个字符串是由三部分组成的,这样就得到一个jwttoken,然后访问别人的网站时候带上这串字符串,他就会同样的jwt方法去解析出你字符串附带的用户信息之类的
这里把解析的方法也提供一下
public string DecodingToken(string Token)
{
string token = Token;
//这里密钥同上,需要两边密钥同步才能解出来
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);
return json;
}
catch (TokenExpiredException ex)
{
return ex.Message;
}
catch (SignatureVerificationException ex)
{
return ex.Message;
}
}
把上面获得的token代入进去,就可以解析出值了
后面怎么操作这些值就根据自己的业务逻辑来处理了
后面有时间在更新一篇rabbitmq的操作,今年应该就这样了,工作第一年,学习的东西还是不够多还需继续努力哈哈
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143910.html原文链接:https://javaforall.cn