jwt使用:往JwtBuilder中設置claims ,值被覆蓋的問題

不要使用 builder.setClaims(map) 封裝 map,因爲會覆蓋前面設置的參數

  1. 循環 keySet() 設置
  2. 循環entrySet設置
    //創建JwtBuilder
    JwtBuilder builder = Jwts.builder()
            //設置失效時間
            .setExpiration(new Date(exp))
            .setIssuedAt(new Date())
            .signWith(SignatureAlgorithm.HS256,key)
            .setId(id)
            .setSubject(username);

    //根據map設置claims  下列兩種方式取其一即可
    //通過keySet設置
    Set<String> set = map.keySet();
    for (String key : set) {
      builder.claim(key, map.get(key));
    }
    
	//通過entrySet設置
    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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章