• Как вывести содержимое файла имея только команды echo и ls?

    dasha_programmist
    @dasha_programmist
    Роман Мирр, скоро глядишь появятся вакансии такие, с не менее идиотскими вопросами на собеседованиях
    Написано
  • Как реализовать свой API на домене?

    dasha_programmist
    @dasha_programmist
    ага, дальше пусть 443 настроит
    Написано
  • Почему возникает ошибка 500 в Next.js и как это исправить?

    dasha_programmist
    @dasha_programmist
    Игорь Васильев, Ангуляр? Смеёшься? мы даже контрибьютили когда он был в бета в 2016, там такой бардак и задница, что ужас, Юниверсал настолько кривой и не гибкий, что пришлось в 2018 полностью уйти на Реакт.
    Вью адекватный, нукст тоже.
    Реакт гибче в плане библиотек, проще для понимания как работает под капотом (однонаправленная модель данных), JSX намного удобнее разделения на шаблоны и код
    Написано
  • Почему возникает ошибка 500 в Next.js и как это исправить?

    dasha_programmist
    @dasha_programmist
    Игорь Васильев, аааа теперь понятно, мы не используем статическую генерацию совсем, всегда переписанный app.tsx
    поэтому не подскажу
    знаю только, что для статической генерации Gatsby вроде как получше будет
    SSR и Prerendering (static) - это если что два разных подхода
    Написано
  • Почему возникает ошибка 500 в Next.js и как это исправить?

    dasha_programmist
    @dasha_programmist
    первый раз такое слышу, в проде около 2х лет Нэкст
    Написано
  • Как организовать архитектуру Go микросервиса?

    dasha_programmist
    @dasha_programmist
    ReallyNoob, у тебя будет возможно +1-2 слоя еще:
    - слой бизнес логики с методами которые дергаются из прото-хэндлеров
    - слой работы с БД (это опционально), возможно, если не нужно каких-то хитрых синхронизаций и достаточно драйвера, то можно прямо из слоя БЛ получать данные

    Функции хэлперы, вероятно, уходят в другой пакет, потом переиспользуются другими микросервисами
    Написано
  • Организация правильной архитектуры?

    dasha_programmist
    @dasha_programmist
    Андрей Зубков, если запускать в кластере volume - не очень подходящий способ
    Написано
  • Живы ли вэб-компоненты?

    dasha_programmist
    @dasha_programmist
    StencilJS - такие штуки есть, поэтому живы, очень активно используются
    Написано
  • Как сделать авторизацию вебсокет сервера на сервере php?

    dasha_programmist
    @dasha_programmist
    sevic, насколько помню суть кук в том, что по умолчанию они отправляются на сервер при любом запросе, даже если это картинка. Ясно, что можно при fetch рулить через credentials
    Отвечая - да, обе отправляешь, обе приходят или обе удалены
    Написано
  • Как сделать авторизацию вебсокет сервера на сервере php?

    dasha_programmist
    @dasha_programmist
    sevic, в серьезной разработке практически нет одного/двух "правильных" решение. Все зависит от проекта/команды/возможностей средств. Все стандарты - это просто формальность.
    JWT - модель хранения информации или модель данных (можно придумать свое шифрование/сессии/что угодно), просто уже куча готовых либ и более менее известно "всем"
    Куки/локальное/сессионное/внутри стора приложения - место хранения токенов/сессий (модели данных) на клиенте для оптимизации дальнейшей их передачи при каждом запросе
    oAuth/Basic/другие правила - это способ договориться о выдаче токена и авторизоваться.
    К чему это я - просто структурировать понятия и разложить в голове, с другой стороны по этим трем фронтам никто не мешает сделать какие угодно "велосипеды", как у ВК например.

    Теперь по рефрешам:
    Access JWT Token имеет поле exp в него можно записать unix timestamp метку о том, когда же этот токен истечет.

    SPA
    тут отталкиваемся сколько живет токен секунды/минуты/часы/сутки и в зависимости от этого выбираем интервал проверки на клиенте
    setInterval(()=>{
    /*
    1й момент - честные access token
    проверяем если до exp осталось меньше минуты/скольки то секунд (от интервала и времени токена отталкиваемся), то делаем запрос на сервер с refresh
    2й момент - черные списки
    стандарт не предусматривает возможности "обнулить токен" на других устройствах или еще где-то, например когда ты меняешь пароль или просто хочешь чтобы все токены протухли, НО
    можно реализовать на сервере в быстром хранилище (redis) черные или белые списки с токенами (при выдаче заносить с временем экспирации) и уже строить логику на сервере и проверять не только сигнатуру (что подписан тем же сервером) но и нахождение в черном списке. Нужно ли это проверять тут в setInterval не скажу - зависит от приложения
    */
    }, /* обычно раз в 10-60 секунд*/);


    Что касается WS: сложнее, потому что можно внутри setInterval или рвать соединение и коннектить с новым токеном или на сервере при выдаче токена продлять метку жизни соединения. Тем не менее при установке соединения на сервере стоит ставить метку до какого времени можно оставаться подключенным и в каком-то общем потоке раз в минуту пробегаться по всем соединениям, проверять и обрывать если что

    НЕ_SPA
    Тут проще, посколько у тебя каждый запрос к серверу и так должна проверяться валидность токена (сигнатура/время жизни), это реализуют в middleware и в либах jwt как правило для серверной стороны эти проверки уже реализованы. Это, кстати, логично и для ajax запросов с клиента, эти запросы тоже проходят через jwt middleware. Просто в случае SPA мы как бы явно делаем оптимизацию тем, что если заведомо еще на клиенте предполагаем что токен невалиден, то не делаем с ним запрос, а вместо этого перед этим делаем рефреш.

    Отвечая на вопрос о cabinetController, это же контроллер серверный? В таком случае он не должен выставлять куки протухшие. Логика такая:
    1) пришел запрос на контроллер с двумя куками: access, refresh
    2) если access == ok выставляем старый access, refresh
    3) если access != ok проверяем refresh, если refresh == ok то на серверной стороне получаем новый access и refresh по существующему рефрешу, не надо получение вести через клиента - это будет оверхэд, если можно на сервере сделать
    выставляем новый access, новый refresh
    4) если refresh != ok , шлем куки на удаление access, refresh таким образом в этом кейсе контекст авторизации будет "неавторизован"
    Написано
  • Как добавить новый key value в JSON?

    dasha_programmist
    @dasha_programmist
    linuxoid_inrus, ты забыл код структуры закинуть сюда!
    там обязательно надо настроить тэги `json:"id"` типа такого, иначе имена не совпадают. короче код нужен, чего гадать
    Написано
  • Как в переменную PATH задать два значения?

    dasha_programmist
    @dasha_programmist
    добавлять через точку с запятой по примеру как у тебя ниже в переменной
    Написано
  • Как сделать авторизацию вебсокет сервера на сервере php?

    dasha_programmist
    @dasha_programmist
    sevic, например та же oauth позволяет bearer токен получать через query parameters, поэтому можно делать как-то так /ws?access_token=token

    как получить: при рендеринге тела страницы на сервере, читается кука и вставляется куда-то в сериализованный state, как и другая инфа при классическом server side rendering
    Написано
  • Какой алгоритм выбрать?

    dasha_programmist
    @dasha_programmist
    не проще все на timestamp'ах считать?
    Написано
  • На чем пишут тесты на проектах Node.js?

    dasha_programmist
    @dasha_programmist
    тут больше вопрос про какие сервисы идет речь и что в них надо тестировать?
    если это функции - то скорее идет речь о юнит тестах
    если это graphql - то скорее идет речь о снапшотах и куда их писать/читать и т.д

    это так... информация, которая тебе пригодится для уточняющего запроса в гугле ;)
    Написано
  • Нужны ли эти знания по react/redux?

    dasha_programmist
    @dasha_programmist
    testDevUa, зависит от компании, те кто держат тренд - да, лучше на хуках, код лаконичнее и короче
    но с классическим подходом нужно таки будет хотя бы разобраться, чтобы понимать код других библиотек или легаси код. Задачи обновления кодовой базы никто не отменял
    Написано
  • Нужны ли эти знания по react/redux?

    dasha_programmist
    @dasha_programmist
    а чего учить то? это недели займёт?
    понять подход - час, потренироваться на задаче - день
    для общего развития стоит ознакомиться
    Написано
  • Как сделать авторизацию вебсокет сервера на сервере php?

    dasha_programmist
    @dasha_programmist
    куки должны быть подписаны ключом, который хранится только на сервере
    при каждом обращении с этими куками нужно проверять валидность токена с помощью этого ключа
    Написано