За последние 24 часа нас посетили 17315 программистов и 1663 робота. Сейчас ищут 1537 программистов ...

Обновление JWT токена

Тема в разделе "JavaScript и AJAX", создана пользователем pr0n1x, 30 сен 2019.

  1. pr0n1x

    pr0n1x Активный пользователь

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Всем привет.
    Подскажите схему работы JWT токена.
    Когда пользователь входит на сайт, сервак ему отдает JWT токен, этот токен имеет срок дейсвия например 20 минут, после чего он считается невалидным.
    Как должен обновляться JWT токен? Ведь пользователь не будет каждые 20 минут логинется заново на сайте?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    748
    Адрес:
    Татарстан
    при каждой проверке токена - время жизни обновляется. И таки да - если более 20 минут не заходил - придется логиниться
     
  3. pr0n1x

    pr0n1x Активный пользователь

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Человек заходит на страницу, например личный кабинет, я отправляю токен на сервер и проверяю его, если все ок, я бери ид человека из токена и делаю необходимые действия с ним, например в базе что-то выбираю, потом результат выборки я должен отправить клиенту и в этом случае я должен сгенерировать новый токен и отправить вместе с результатами выборки? И так при каждом обращении на сервер?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    748
    Адрес:
    Татарстан
    Нет.
    Обычно фреймворки сами обновляют данные токена.
    Но если вы свое пишите - то когда вы поняли что все ок, и токен не просрочен - обновляете время жизни токена на сервере (обычно в БД) еще на 20 минут, сам токен при этом не меняется ... по сути ходит то и не токен, а его хеш
     
  5. pr0n1x

    pr0n1x Активный пользователь

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Я работаю с Express на nodejs тут нужно все самому делать!
    что вы имеете в виду "по сути ходит то и не токен, а его хеш" зачем сам токен хранить в бд, если в токен можно положить ид пользователя и брать его оттуда всякий раз когда идет обращение на сервер и обновлять какое-то поле в таблице юрезс?
    в спецификации jwt есть поле exp - для чего оно тогда нужно?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вроде как фишка в JWT как раз в передаче подписанной информации о роли и правах пользователя. Благодаря этому, сервис который принял токен не нуждается в системе авторизации, а должен лишь валидировать подпись.
     
  7. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Под Express нет готовой миддлвари для JWT? Не верю! (с) )))

    https://github.com/auth0/express-jwt

    connect/express middleware that validates a JsonWebToken (JWT) and set the req.user with the attributes

    3.3k звезд

    прошу любить и жаловать )))