powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Не устанавливается expiration time для jwt access токена
4 сообщений из 4, страница 1 из 1
Не устанавливается expiration time для jwt access токена
    #39798952
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Непонятки с expiration time jwt токена.
Выставил время жизни 15 минут
При авторизации пользователя создаем токен:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public String generateToken(Authentication authentication) {

        UserPrincipal userPrincipal = (UserPrincipal) authentication.getPrincipal();

        Date now = new Date();
        Date expiryDate = new Date(now.getTime() + jwtExpirationInMs);
        System.out.println("Curent time: " + new Date(new Date().getTime()));
        System.out.println("expiryDate: " + expiryDate);

        return token = Jwts.builder()
                .setSubject(Long.toString(userPrincipal.getId()))
                .setIssuedAt(new Date())
                .setExpiration(expiryDate)
                .signWith(SignatureAlgorithm.HS512, jwtSecret)
                .claim("TEST", "lololo")
                .compact();
    }



Вроде все ок:
Код: java
1.
2.
Curent time: Tue Apr 09 10:34:34 UTC 2019
expiryDate: Tue Apr 09 10:49:34 UTC 2019



Беру этот токен, который прилетел в ответ на успешную авторизацию, иду с ним в закрытый раздел попутно вытаскивая id пользователя:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Long getUserIdFromJWT(String token) {
        Claims claims = Jwts.parser()
                .setSigningKey(jwtSecret)
                .parseClaimsJws(token)
                .getBody();

        System.out.println("Curent time: " + new Date(new Date().getTime()));
        System.out.println("Expiration time: " + claims.getExpiration());
        System.out.println("IssuedAt exp: " + claims.getIssuedAt());

        return Long.parseLong(claims.getSubject());
    }



И вот тут начинается какая-то дичь:
Код: java
1.
2.
3.
Curent time: Tue Apr 09 10:35:01 UTC 2019
Expiration time: Mon Apr 15 09:46:31 UTC 2019
IssuedAt exp: Mon Apr 08 09:46:31 UTC 2019


Почему claims.getExpiration() на 6 дней перескочил ??
...
Рейтинг: 0 / 0
Не устанавливается expiration time для jwt access токена
    #39799055
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bobo96, есть сайт https://jwt.io/. Вставьте полученный токен и посмотрите что в нем.
...
Рейтинг: 0 / 0
Не устанавливается expiration time для jwt access токена
    #39799056
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bobo96System.out.println("Curent time: " + new Date(new Date().getTime()));


а
Код: java
1.
new Date()

не работает?
...
Рейтинг: 0 / 0
Не устанавливается expiration time для jwt access токена
    #39799119
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tsyklopbobo96, есть сайт https://jwt.io/. Вставьте полученный токен и посмотрите что в нем.
Ок, попробую.
Tsyklopbobo96System.out.println("Curent time: " + new Date(new Date().getTime()));


а
Код: java
1.
new Date()

не работает?
Да работает наверное, просто это все копипаста с той ссылки, что вы дали)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не устанавливается expiration time для jwt access токена
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]