• Где JWT хранит свой токен на сервере?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Серверу не надо хранить рабочий JWT. Он просто берёт две первые части токена, вычисляет подпись, сравнивает с расшифрованной подписью токена и убеждается, что токен настоящий.
    Ответ написан
    Комментировать
  • Как найти скрипт который добавляет инлайн стиль элементу?

    khusamov
    @khusamov
    ReactJS, NodeJS, TypeScript, Sencha ExtJS
    Искать в тексте скрипта ссылки по ID элемента или по его классам.
    Ответ написан
    Комментировать
  • Как найти скрипт который добавляет инлайн стиль элементу?

    Stalker_RED
    @Stalker_RED
    Ещё можно MutationObserver, но тоже не всегда срабатывает.
    Ответ написан
    Комментировать
  • Как получить контакт из бизнес-процесса?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    У вас есть как минимум 3 способа (а на самом деле еще больше):

    Вариант 1: парсер
    $companyId = $this->ParseValue('{'.'=Document:ID}');


    Вариант 2: runtime свойство:
    list($property, $companyId) = $this->getRuntimeProperty(
    	\Bitrix\Bizproc\Workflow\Template\SourceType::DocumentField,
    	'ID',
    	$this
    );
    
    // $companyId - идентификатор сущности


    Вариант 3: document service
    $documentId = $this->getDocumentId();
    $documentService = $this->workflow->getService('DocumentService');
    $document = $documentService->getDocument($documentId);
    
    $companyId = $document['ID'];
    Ответ написан
    2 комментария
  • Битрикс24 коробка - ошибка OAuth авторизации, куда копать?

    udjin123
    @udjin123 Автор вопроса
    PHP, Golang, React
    В общем удалось дебагером докопаться для проблемы, возможно кому то пригодится.

    Пару фактов. Битрикс имеет модульную структуру. В битриксе есть модуль REST Api.
    При установке модуля можно зарегистрировать обработчики событий. При установке, в данном случае REST Api, регистрирует обработчики для разных вариантов авторизации
    if(!\Bitrix\Main\ModuleManager::isModuleInstalled("oauth"))
    		{
    			$eventManager->registerEventHandler("rest", "onRestCheckAuth", "rest", "\\Bitrix\\Rest\\OAuth\\Auth", "onRestCheckAuth");
    		}
    
    		$eventManager->registerEventHandler("rest", "onRestCheckAuth", "rest", "\\Bitrix\\Rest\\APAuth\\Auth", "onRestCheckAuth");
    		$eventManager->registerEventHandler("rest", "onRestCheckAuth", "rest", "\\Bitrix\\Rest\\SessionAuth\\Auth", "onRestCheckAuth");

    которые потом при обращении к api и проверке перебираются в цикле и авторизуют в зависимости от параметров запроса.
    foreach(GetModuleEvents('rest', 'OnRestCheckAuth', true) as $eventHandler)
    		{
    			$eventResult = ExecuteModuleEventEx($eventHandler, array($query, $scope, &$res));
    			if($eventResult !== null)
    			{
    				return $eventResult;
    			}
    		}

    Обращаем внимание что для регистрации обработчика авторизации через oAuth идет проверка на наличие установленного модуля
    if(!\Bitrix\Main\ModuleManager::isModuleInstalled("oauth"))
        {
         $eventManager->registerEventHandler("rest", "onRestCheckAuth", "rest", "\\Bitrix\\Rest\\OAuth\\Auth", "onRestCheckAuth");
       }

    Так вот получается что на момент установки модуля Rest его не было потому событие не зарегистрировало.

    По хорошему помогла бы переустановка модуля Rest, но в битрикс24 коробка у него жесткие зависимости и этого сделать нельзя не удалив пол портала.
    60003859766e3137963019.png

    Пришлось руками зарегистрировать обработчик и все заработало.

    Вывод - код битрикс как всегда на высоте, в деле создания проблем на ровном месте.
    Ответ написан
    Комментировать
  • Как подключить трейт?

    mad_maximus
    @mad_maximus
    Вы трейт не подключили.
    Ответ написан
    5 комментариев
  • Как с помощью REST API получить значения пользовательских полей пользователя битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Пользовательские поля вы можете получить через любой REST метод на получение пользователей, если у вас выбран scope "user.userfield" и если код поля начинается с UF_USR_

    Например, если вы создали поле UF_MONDAY и назначили его пользователю, то получить его через REST по работе с пользователем будет нельзя*.

    * - вы можете попробовать подменить класс Bitrix\Rest\Api\User или перекрыть пользовательский scope, но это очень трудоемкий процесс
    Ответ написан
    Комментировать
  • При миграции у меня написало ошибки но таблицы создались, я правильно понимаю что ошибки написало из за того что у меня нет миграции таблицы users'?

    По-умолчанию колонка id в Laravel имеет тип unsigned bigint. Такой тип у колонки users.id. Вы пытаетесь на неё сосласться из колонки posts.user_id, которая имеет тип unsigned int, отсюда и ошибка.

    Внешний ключ создаётся отдельным запросом, поэтому таблицы у вас создались, а он нет. Более того, при следующей попытке запуска миграций вы получите ошибку "таблица posts уже существует", потому что миграция выполнилась наполовину и будет пытаться выполниться снова.
    Нужно вручную удалить таблицу, исправить тип колонки и перезапустить миграцию.
    Ответ написан
    2 комментария
  • Как решить проблему с очисткой консоли в phpstorm?

    Как вариант, может подойдет команда... cls
    Ответ написан
    Комментировать
  • Как установить на Windows 10 несколько версий php?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Как выше уже написали - нужно указать прямой путь к интерпретатору и будет работать:
    1. Распаковываете архивы с php разные папки, настраиваете каждый через php.ini как надо, xdebug ставите и всё, что вам ещё может понадобиться. В path при этом ничего не прописываете.
    2. В Шторме в настройках PHP кликаете на три точки справа от CLI Interpreters и там добавляете каждый интерпретатор путём указания путь до php.exe нужной версии
    3. Выбираете нужный интерпертатор при запуске/отладке скрипта в шторме.
    Ответ написан
    Комментировать
  • Laravel.Комманда php artisan migrate выдает ошибку?

    @matt5346
    Привет, еще такой вариант возможен, для этого необходимо:
    1. Прописать php --ini, найти этот файл и открыть в редакторе,
    2. Разкомментить ;extension=pdo_mysql, для этого надо просто убрать ";" - точку с запятой,
    3. И затем пробовать php artisan migrate.
    Ответ написан
    3 комментария
  • Авторизация или аутентификация?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Аналогия со входом в здание с охраной

    Аутентификация - процесс, в ходе которого пользователь доказывает что он тот, за которого себя выдает - предьявление паспорта - охрана убедилась, что человек, назвавшийся Иваном Петровым, на самом деле Иван Петров, а не Сидор Канарейкин.
    Аутентификация не дает никаких прав, она просто подтверждает идентификацию пользователя

    Авторизация - процесс, в ходе которого пользователь (уже прошедший процедуру аутентификации) подтверждает свое право пользоваться ресурсом - предьявление пропуска. Охрана убедилась, что Иван Петров (личность которого уже подтверждена) имеет право пройти на территорию.

    Применительно к сайтам, на большинстве шаг аутентификации опускается - знаешь пароль - проходи :)
    Ответ написан
    Комментировать
  • Как сделать «Commit and Push» из PhpStorm в gitlab?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Пароль нигде не посмотреть. GitLab не позволяет аутентифицироваться по паролю при использовании протокола SSH. Вместо этого GitLab использует криптографию с открытым ключом для аутентификации по SSH.

    Чтобы аутентифицироваться по SSH с помощью GitLab, вам нужно сгенерировать пару ключей SSH на локальной машине и добавить открытый ключ в свою учетную запись GitLab. После добавления вашего открытого ключа в учетную запись вы можете клонировать репозитории GitLab и выполнять другие операции Git с использованием протокола SSH, не запрашивая пароль.

    Добавление ключа SSH в свою учетную запись GitLab

    Если не хочется возиться с ключами — используйте HTTPS-протокол.
    Ответ написан
  • Почему пример Курл запроса написан в строку, если сам запрос пишется столбиком и является Post запросом?

    toxa82
    @toxa82
    От манеры написания команды в консоли ничего не зависит:
    curl -X POST \
        -H "Authorization: Basic bmlraXRhLmFudG9ub3ZAaGVscGRlc2tlZGR5LmNvbTphMzI4NThiNC1hNjVlLTQ5ZWYtYTk2MC0wYjdlOGQ1ZDFlNDc=" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -H "Cache-Control: no-cache" \
        -d 'title=Problem%20with%20email&description=Problem%20with%20email%20info%40example.com&custom_fields%5B6%5D=field%20value&custom_fields%5B2%5D=4' \
        "https://домен_системы/api/v2/tickets/"
    Ответ написан
    Комментировать
  • Как в битрикс24 приостановить выполнение активити в бизнес-процессе, а потом через какое то время 1 час или пару дней, продолжить выполнение?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Есть активити "Пауза в выполнении", которая позволяет остановить ход бизнес-процесса на определенное количество дней или до указанной даты. Подробнее в документации.

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

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Как получить в ответ от веб хука результат работы бизнес процесса — текстовую строку?


    Никак.

    Как архитектурно работает активити вебхук в Битрикс24 (не важно в облаке или в коробке (без кастомизаций)):
    1. Вызывается действие "Вебхук", на вход подается ссылка которая будет вызвана
    2. Проверяется регистрация на облачном провайдере (oauth.bitrix.info) (если регистрации нет, выполняется авторегистрация)
    3. Если регистрация есть (или прошла успешно) - двигаемся дальше, если нет - пропускаем шаг.
    4. На облачный провайдер (oauth.bitrix.info) передается ссылка. Там формируется задание на отправку и оно падает в очередь.
    5. Облачная очередь обрабатывается асинхронными скриптами и выполняется вызов этой исходной ссылки.

    Как можно увидеть в данном случае вызов осуществляет не портал, а облачная очередь и даже если ссылка что-то вернет - этот результата не будет обработан (ведь его обрабатывает даже не ваш Битрикс24)
    Ответ написан
    Комментировать
  • Как выжить джуну единственным разработчиком на проекте?

    Astrohas
    @Astrohas
    Python/Django Developer
    Я как-то работал при аналогичных условиях. Возможно даже хуже. 1 делом, наплевал на на защиту их системы и работы других прогеров. Я та был осторожен, и все что относилось ко мне оберегал бекапами, гитом, системой деплоя и тд. А в это же время мои сотоварищи писали код прямиком из notepad через мать его Samba. Samba же открыта и без пароля и доступна по вафле. У вафли пароль 12345678.

    Просто плюньте на работу остальных. Делайте свои проекты как вам удобно. У вас есть доступ к полигону, где вы как раз таки имеете возможность саморазвития. Настройте гит флоу, систему деплоя, всякие юни-тесты. Попросите маркерную доску или лист A3 и замутите Agile для себя и девушки. Почувствуйте себя лидером ©
    Ответ написан
    6 комментариев
  • Договорился на подработку, прислали договор на подписание, в нём увидел пункты которые не видел в других подобных договорах - это мошенники?

    @12rbah
    Договорился на подработку, прислали договор на подписание, в нём увидел пункты которые не видел в других подобных договорах - это мошенники, кто ни будь с таким сталкивался?
    Мошенники вряд ли, но многие заказчики не знают НПА и пишут всё подряд в догор, которые суд часто может признать незаконными.
    и потребовать возмеще-ния
    убытков в виде обоснованного, документально подтвержденного, ущерба.
    Ну пусть требует). За такие вещи не так легко взыскать. Если что потраченные деньги на разработку системы будет тяжело класифицировать как ущерб.
    Вообще заказчик может отказаться от исполнения договора с этим условием, но если захотят кинуть и сумма не очень большая, то непонятно, что лучше судиться или забить. В целом не совсем уверен в законности этих пунктов, выглядят примерно как пункты типа "заказчик имеет право оштрафовать по договору на 10кк рублей, если будет нарушено НДА", но в реальности он сможет взыскать деньги через суд и то если он правильно всё сделал, если кратко то по нда очень тяжело привлечь. В данном случае работайте либо по предоплате, либо по пунктам, т.е. что-то сделали просите оплату, не дают то прекращаете работу.
    P.S. А что вы делаете, всё что писал выше в основном к разработке относится.
    Ответ написан
    2 комментария