不要使用 builder.setClaims(map) 封裝 map,因爲會覆蓋前面設置的參數
- 循環 keySet() 設置
- 循環entrySet設置
JwtBuilder builder = Jwts.builder()
.setExpiration(new Date(exp))
.setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256,key)
.setId(id)
.setSubject(username);
Set<String> set = map.keySet();
for (String key : set) {
builder.claim(key, map.get(key));
}
Set<Map.Entry<String, Object>> entries = map.entrySet();
for (Map.Entry<String, Object> entry : entries) {
String key = entry.getKey();
Object value = entry.getValue();
builder.claim(key, value);
}