一、 JWT 简介
JWT(Json Web Token)是现在流行的一种对 Restful 接口进行验证的机制的基础。
JWT 的 特点:把用户信息放到一个 JWT 字符串中,用户信息部分是明文的,再加上一部分签名区 域,签名部分是服务器对于“明文部分+秘钥”加密的,这个加密信息只有服务器端才能解 析。
用户端只是存储、转发这个 JWT 字符串。如果客户端篡改了明文部分,那么服务器端 解密时候会报错。
用 JWT 做权限验证的好处:
无状态,更有利于分布式系统,不需要集中的 Session 机制 服务器;可以在 nginx、CDN 等静态文件处理服务器上校验权限;获取用户信息直接从 JWT 中就可以读取,效率高;
二、 .Net 中使用 JWT 算法加密
#region 加密
//加密的数据
var payload = new Dictionary<string, object>
{
{ "UserId", 123 },
{ "UserName", "admin" }
};
//加密的密钥
var secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";//不要泄露
//jwt算法加密
IJwtAlgorithm algorithm = new HMACSHA256Algorithm(