生成token的时候,虽然指定了密钥,可是去在线网站去解码token的时候,却没有输入密钥这个选项。
难道获取token的header和payload真的不需要密钥吗?
出于好奇的角度,一番搜索,千篇一律的解码方法都需要指定secret,
终于让我看到了无密钥就可以获取header和payload的文章。
token信息:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkJhZWxkdW5nIFVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.qH7Zj_m3kY69kxhaQXTa-ivIpytKXXjZc1ZSmapZnGE
代码如下:
String[] chunks = token.split("\\.");
Base64.Decoder decoder = Base64.getUrlDecoder();
String header = new String(decoder.decode(chunks[0]));
String payload = new String(decoder.decode(chunks[1]));
解码结果:
{"alg":"HS256","typ":"JWT"}{"sub":"1234567890","name":"Baeldung User","iat":1516239022}
JWT Token在线解析解码 - ToolTT在线工具箱
原文地址:Decode a JWT Token in Java | Baeldung
网友评论