Как установить и получить содержимое Payload в JWT Token - PullRequest
0 голосов
/ 21 декабря 2018

Я создал токен JWT в Spring Boot для хранения данных пользователя.Когда я использую Jwttokenutil. getUsernameFromToken (authToken) [authToken - это пройденный токен], я получаю набор данных для Subject.Точно так же я хочу получить набор данных Payload, который содержит другие данные пользователя.Но я не могу его получить.

======= Ниже приведен мой метод / код генерации токена: ========

public String generateToken(HashMap<String, Object> userData,String subject)
    {
        String jwtToken="";

                System.out.println("in generate token method : " + subject);

        jwtToken = Jwts.builder()
                .setSubject(subject)   // subject is dbname
                .claim("userDetails", userData)
                .setPayload(userData.toString())
                .setIssuedAt(new Date())
                .setExpiration(new Date(System.currentTimeMillis() + 60*60*5*1000))
                .signWith(SignatureAlgorithm.HS256, "secretkey") 
                .compact();


                System.out.println("userData " + userData);

        return jwtToken;
    }

======= Ниже приведен метод, который я создал для получения данных полезной нагрузки ======

public Object getPayloadFromToken(String token)
    {
        Claims body= Jwts.parser()
        .setSigningKey("secretkey")
        .parseClaimsJws(token)
        .getBody();

        System.out.println("userdet==========> " + body.get("userDetails") );
        return body.get("userDetails");
    }

=== Но я получаю эту ошибку ===

java.lang.IllegalStateException: и 'полезная нагрузка' и 'заявки' не могут быть оба определены.Выберите один из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...