• Реально ли такое сверстать?

    Daemon23RUS
    @Daemon23RUS
    godsplane, Доказательства чего ? что этот макет делается дивами со скруглениями и бордером ? Так это очевидно любому вменяемому верстальщику. Причем div не единственный способ такой макет сверстать. Я даже больше скажу, этот макет может быть еще и адаптивным.
    Если Вы верстаете, создавайте вопрос со своим примером кода и того, что у вас не выходит. Мы увидим, подскажем.
    Если Вы в стадии поиска подрядчика под такой дизайн и у вас сомнения в возможности такой верстки, так я дал ответ, повторю: Да
  • Как настроить кастомный пин в react-yandex-maps?

    Daemon23RUS
    @Daemon23RUS
    GNG999, const templateLayoutFactory разве с этим не связан ?
  • Почему один ноутбук ловит wifi сигнал лучше другого?

    Daemon23RUS
    @Daemon23RUS
    followfirst, Дополню к проверке, повторить проверку, когда один из ноутов загружен с флешки какой нибудь OS с поддержкой сети и WiFi Таким образом можно вычислить когда виновна Винда, которая покосячила свои сетевые протоколы.
  • Почему один ноутбук ловит wifi сигнал лучше другого?

    Daemon23RUS
    @Daemon23RUS
    followfirst, В общих чертах план проверки такой:
    Iperf на оба копма
    2 патчкорда, 1 кросс корд (многие сетевые карты могут сами определит тип провода, так что кросс может быть избыточным)
    по 2 проверки на 1 сетевой конфиг, в одной Dell сервер в другой MSI (подробнее в документации Iperf)
    сетевые конфиги:
    оба по WiFi
    MSI кабель Dell WiFi
    MSI WiFi Dell кабель
    оба кабелем в роутер
    оба кабелем между собой (не забыть вручную указать IP адреса т.к DHCP будет недоступен)

    Такой план проверки даст некую картину скоростей, на основе которой можно строить дальнейшие предположения по улучшению скорости.
  • Как именно работает firewall у хостингов?

    Daemon23RUS
    @Daemon23RUS
    Rett-oo, если упростить, то грубую очистку выпоолнит роутер, а тонкую firewall на самом сервере
  • Как именно работает firewall у хостингов?

    Daemon23RUS
    @Daemon23RUS
    Rett-oo, Я, при том минимуме информации, соглашусь с сисадмином. 2 забора лучше одного. Та зараза что пролезет через 1й, вероятно споткнется о 2й. Но повторюсь, тут оочень много ньюансов. Например ДДос положит firewall на сервере. А брутфорс с большой долей вероятности просочится через роутер.
  • Как именно работает firewall у хостингов?

    Daemon23RUS
    @Daemon23RUS
    Rett-oo, А сервер то в организации стоит ? Нужно выбрать системного администратора обладающего необходимыми знаниями. Защитить сервер от школоты - это один уровень безопасности. Создать эшелонированную оборону - другой. Затраты тоже отличаются на порядки. Вам вероятно придется искать компромисс. Поймите, firewall это ну ооочень гибкий инструмент. Нужен только мастер.
  • Почему один ноутбук ловит wifi сигнал лучше другого?

    Daemon23RUS
    @Daemon23RUS
    followfirst, что показывает скорость соединения в свойствах этого подключения.
    Поймите, однозначно дать ответ не выйдет, пока Вы не проведете ряд (для Вас возможно непростых) тестов.
    Например утилитой iPerf
  • Переадресация без заголовка Location и мета-тега - как это работает?

    Daemon23RUS
    @Daemon23RUS
    Александр Попов,
    UPD: поменялось, вы были правы. Я открывал целевой домен, а не исходный. Там действительно есть скрипт. И он ставит куку, в которой содержится некий IP адрес. Вот только у меня есть вопрос, почему это делают через куку, а не отправку HTTP кода или через редирект внутри тега script (например, location.reload)?

    по куке сервер может генерить js на лету, а там и будет location.reload(значение из куки)
    И нужно это, скорее всего, чтобы один сервер в единой точке выполнял все редиректы.
  • Переадресация без заголовка Location и мета-тега - как это работает?

    Daemon23RUS
    @Daemon23RUS
    Александр Попов, на домене 3го уровня и надо проверять MX ибо то, что после @ и есть почтовый домен. И для
    some@sub1.site.com
    some@sub2.site.com
    some@sub3.site.com
    some@site.com
    будут разные MX записи, сервера могут совпадать, т.е значения MX, а вот MX запись должна быть для каждого варианта, иначе письмо не доставить.
  • Как отслеживать выход из сети?

    Daemon23RUS
    @Daemon23RUS
    Сергей delphinpro, Это будет же следующий уровень. А на следующем уровне статусы могут быть такие (как пример) онлайн оффлайн, неактивен(отошел), печатает и тд.
  • Переадресация без заголовка Location и мета-тега - как это работает?

    Daemon23RUS
    @Daemon23RUS
    Александр Попов, Игра с куками, 1й раз код есть, 2й раз (кука уже есть) нет кода. Это метод такой защиты от дебага.
  • Как сделать подложку(карту) на Python?

    Daemon23RUS
    @Daemon23RUS
    IstDanya, Это если с Folium уже завязались, а так вариантов действительно полно, все гуглится, Вам проще гуглить, у Вас самое полное представление о задаче.
  • Переадресация без заголовка Location и мета-тега - как это работает?

    Daemon23RUS
    @Daemon23RUS
    Александр Попов, Все банально, на основе userAgent cloudfave.com отдает html сo скриптом, скрипт дропает тело html все выглядит пустым. А далее идет "магия JS" и "шаманство с куками" смысл которого, если есть кука отдает реальный код, нет куки - пустышку. Можно в деталях это разобрать, но опять вопрос, зачем ? Практической пользы будет 0, все методы давно известны и задокументированы, никакого чуда там не происходит.
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, Добавлю, чтобы было однозначное толкование Клиент отвечает за получение нового токена, а мидл отвечает за его проверку. Т.е обязанность держать актуальный токен лежит на клиенте
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, Правильно, рефреш токен в куках но летает только на api/auth//refreshtoken, что и указано в его Path=/api/auth/refreshtoken. На api/users этот кукис не летит. Туда летит сам JWT. Так вот мидваре проверяет этот самый JWT на валидность, в том числе и на просрочку. И вот в случае просрочки, мидл бросает исключение, и отправляет что токен просрочен, а сам запрос в этом случае до роута не доходит. Клиент получив от api/users ответ что доступа нет просрочка, идет на /api/auth/refreshtoken, а так как с этим path у клиента есть кука рефреш он ее тянет с собой. /api/auth/refreshtoken возвращает клиенту новый токен и в куку новый рефреш. (ну или ошибку просрочки рефреша и тогда клиент идет на /login)
    Клиент успешно получив новый токен, повторяет запрос на api/users
    Профит !!!
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, Я выскажу личное мнении, считайте это мысли вслух.
    таскать рефреш в каждый запрос -зло, у этой куки должен быть Path=/api/auth/refresttoken и именно в этом запросе ее надо светить. Именно по этому я все время твержу, что у вас в схеме что то не то.
    Вопрос обновления токена вы по какой то причине сняли с клиента и повесили на сервер. И теперь у вас с этим проблема. По факту вы JWT превратили в сессию. Ведь это задача клиента следить за тем, что его токен жив и после просрочки получать новый, для этого есть api/auth/refresttoken а серверное апи путем проброса исключения в ответе tokenexpired на всех роутах апи сообщает клиенту либо данные либо ошибку. И клиент поличив tokenexpired идет обновлять токен, а потом повторяет запрос с новым токеном.
    Расскажите где я не прав ?
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, В общем я попробовал у себя, то что хотите сделать Вы (модификацию отправляемых данных) Создал пустой проект с 2мя роутами
    фрагмент app.js
    app.use('/api',function(req, res, next) {
      var originalSend = res.send;
      res.send = function (){
        let temp=JSON.parse(arguments[0]);
        temp.mw_add="Some Data From Middleware";
        temp.mw_time = Date.now()
        res.cookie('MiddleWare','added after route send')
        arguments[0] = JSON.stringify(temp);
        originalSend.apply(res,arguments);
      }
      next();
    });
    app.use('/api', APIRouter);

    api_route.js
    var express = require('express');
    var router = express.Router();
    const some_api_data={api_value:35,api_status:"Status OK"}
    /* GET API page. */
    router.get('/', function(req, res, next) {
      res.status(200).json(some_api_data)
    });
    module.exports = router;

    посылаемые данные в роуте {"api_value":35,"api_status":"Status OK"}
    принимаемые данные клиентом
    {"api_value":35,"api_status":"Status OK","mw_add":"Some Data From Middleware","mw_time":1700082379016}
    + устанавливается кука
    Set-Cookie: MiddleWare=added%20after%20route%20send; Path=/

    Вы конечно можете адаптировать все это под себя, но это будут жутчайшие костыли. Мне было интересно как это можно сделать, я свой интерес удовлетворил. Без учета этого в роутах - все плохо.
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, Прежде чем продолжить поиск решения, скажите, Вы рефреш заставляете клиента таскать в каждый запрос ?
  • Как правильно отдавать обновленные токены в роутах?

    Daemon23RUS
    @Daemon23RUS
    Boris007, Я ранее как раз об этом и писал, что делаем если токен протух а рефреш жив
    Ведь данные мы не можем отдать если токен протух. а чтобы на лету его обновить нужен рефреш, который мы по идее каждый раз в запрос не таскаем. А предоставляем только на эндпоинт рефреша, где и получаем новые токен и рефреш. Вот в принципе этот вопрос я и поднимал в своем ответе, что вы что то недоговариваете, или как то по другому реализовываете.