• Как корректно использовать пару JWT и Refresh токенов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Следить за сроком жизни может как клиент, так и сервер или оба.
    В первом случае клиент, обнаружив просроченный токен доступа, сразу отправляет запрос на обновление. Недостаток - если на клиенте перевести часы назад, то он не обнаружит протухший токен.
    Во втором случае время всегда берётся с одного источника (сервера), но будет лишний запрос, на который сервер ответит, что токен просрочен.
    Ответ написан
    Комментировать
  • Как корректно использовать пару JWT и Refresh токенов?

    @calculator212
    Я предполагал что фронтенд перед каждым запросом будет проверять не истек ли срок жизни access token, и если истек - отправляет запрос на обновление токенов, получает их, приклеивает и дальше проходит запрос. Но как в таком случае, разлогинивать пользователя при отсутствии активности в течении 1 часа?
    Его не нужно разлогинивать, т.к. проверка токена не пройдет. В общем это будет примерно так выглядеть
    1) фронт видит, что access токен истёк
    2) Отправляет refresh на точку api
    3) refresh api видит что refresh токен истёк и отправляет статус 401 например и фронт переводит пользователя на панель логина
    4) пользователь вводит учётные данные снова
    Ответ написан
    Комментировать
  • Как корректно использовать пару JWT и Refresh токенов?

    @Kostik_1993
    Web Developer
    Время жизни access token ставите допустим 5 минут. Время жизни рефреша 1 час. Профит
    Ответ написан
    Комментировать
  • Как правильно разработать todolist?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    1,3 просто забудьте https://docs.duendesoftware.com/identityserver/v6/...
    Используйте готовое решение
    Хотя лучше вот это https://docs.duendesoftware.com/identityserver/v6/...
    А потом подтянуть до предыдущего совета.
    И да все можно сделать в 1 приложении

    4. реакт ругается как в консоль так и в браузер, а когда белый экран откройте f12 и все там будет
    2. Ничего не мешает вам сравнить то что пришло и то что есть и послать дельту.
    Например пришло 700кб Вы в конец добавили 100 символов. По итогу вы вызываете что то типа

    const data = { text: 'append text' };
    
    fetch('https://example.com/post/42/append', {
      method: 'POST', 
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(data),
    })
      .then((response) => response.json())
      .then((data) => {
        console.log('Success:', data);
      })
      .catch((error) => {
        console.error('Error:', error);
      });
    Ответ написан
    Комментировать
  • Как правильно разработать todolist?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    2. Читаем, что такое WebAPI. Ему есть альтернативы, например gRPC, GraphQL.
    скажу наперед, добавятся данные к заметке, не обязательно на сервер слать заметку и все сущности связанные с ней, отсылаем только изменения.
    Ответ написан
    Комментировать