1. Auth2认证流程
服务访问第三方认证系统,返回用户 授权 页面,用户授权之后,第三方应用颁发服务令牌,服务拿着令牌去请求资源
2. 令牌分为哪几类?
答: 分为 普通令牌和 JWT令牌
3. 向客户端返回的令牌 包括 哪几部分?
答: token(短令牌),刷新令牌,jwt令牌
4. 如何生成JWT令牌?
答: 使用 JwtHelper生成令牌,根据(内容,私钥)
//创建jwt令牌
@Test
public void testCreateJwt(){
//密钥库文件
String keystore = "xc.keystore";
//密钥库的密码
String keystore_password = "xuechengkeystore";
//密钥库文件路径
ClassPathResource classPathResource = new ClassPathResource(keystore);
//密钥别名
String alias = "xckey";
//密钥的访问密码
String key_password = "xuecheng";
//密钥工厂
KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(classPathResource,keystore_password.toCharArray());
//密钥对(公钥和私钥)
KeyPair keyPair = keyStoreKeyFactory.getKeyPair(alias, key_password.toCharArray());
//获取私钥
RSAPrivateKey aPrivate = (RSAPrivateKey) keyPair.getPrivate();
//jwt令牌的内容
Map<String,String> body = new HashMap<>();
body.put("name","itcast");
String bodyString = JSON.toJSONString(body);
//生成jwt令牌
Jwt jwt = JwtHelper.encode(bodyString, new RsaSigner(aPrivate));
//生成jwt令牌编码
String encoded = jwt.getEncoded();
System.out.println(encoded);
}