.net core 3.1JWT用户权限认证(一)
jwt官网:jwt官网
什么是JWT?
JSON Web Token (JWT) 是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间作为 JSON 对象安全地传输信息。该信息可以被验证和信任,因为它是经过数字签名的。JWT 可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。
JWT与传统的Session的区别
传统的session模式是用户登录信息保存在session中,然后后台服务器会保存sesssion,传给sessionid给客户端保存起来,再次请求的时候,会携带sessionid来验证用户,这是有状态登录,因为后台已经保存了相关信息。
而JWT则是无状态登录,用户登录之后传回token,我们再次请求的时候会携带token到服务器后端来进行解密,解密成功就可以请求成功,所以jwt更像是一个加密解密的过程。关于对称式加密和非对称式加密,之前的文章有介绍。
JWT
SEESION
JWT的构成
JWT主要是三部分构成
HEADER(标题):
这里是呢,加密的类型
PAYLOAD(有效载荷):
这里可以放任何信息,包括用户信息等等,一般不放私密的信息,
我们还会在这里放exp:这个类型,这是jwt过期的设置,更多设置去看官网
VERIFY SIGNATURE(验证签名):
这里是最重要的部分,和后台用私钥解密息息相关。相当于一个防伪标志,一旦篡改,token直接验证不通过,这里使用的RSA加密解密的方式。