前言
今天的分享主要是颁发令牌。
JWT
什么是JWT?
Json web token (JWT), 是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准(RFC7519).定义了⼀种简洁的,⾃包含的⽅法⽤于通信双⽅之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使⽤HMAC算法或者是RSA的公私秘钥对进⾏签名。
组成
- Header:包含token类型和采用的加密算法
- Payload:存放信息
- Signature:签名,防篡改
为什么使用JWT?
传统的授权模式性能低下,每次都需要请求授权服务校验令牌合法性,我们可以利⽤公钥私钥完成对令牌的加密,如果加密解密成功,则表示令牌合法,如果加密解密失败,则表示令牌⽆效不合法,合法则允许访问资源服务器的资源,解密失败,则不允许访问资源服务器资源。
使用流程
生成密钥
使用Keytool工具生成。
keytool -genkeypair -alias kaikeba -keyalg RSA -keypass kaikeba -keystore kaikeba.jks -storepass kaikeba
使用OpenSSL导出
keytool -list -rfc --keystore kaikeba.jks | openssl x509 -inform pem - pubkey
总结
今天主要介绍JWT和密钥生成, 下一篇介绍使用。