Авторизация при "обмене с сайтом"

1. user970659 05.05.18 22:31 Сейчас в теме
Здесь 1С описывает "Протокол обмена между системой "1С:Предприятие" и сайтом" http://v8.1c.ru/edi/edi_stnd/131/

В начале сеанса 1С отправляет GET запрос вида http://<сайт>/<путь> /1c_exchange.php?type=catalog&mode=checkauth. На него мы должны вернуть success и информацию о cookie. Непонятен сам процесс авторизации. Как передаётся логин и пароль? как проверить,что запрос осуществляется ни кем попало?
Есть готовое решение на php для авторизации?
Какие способы аутентификации поддерживает 1С предприятие 8.3?
По теме из базы знаний
Найденные решения
8. Sapiens_bru 4 07.05.18 05:13 Сейчас в теме
(1) Запустил соединение из 1С с авторизацией и без, поймал фидлером. Отличаются они на строку
Authorization: Basic dXNyOnB3ZA== , что раскладывается на "usr:pwd" , введённые мною для теста.
Гуглите в сторону базовой авторизации.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. cassper 05.05.18 22:53 Сейчас в теме
(1)в заголовках должно быть указано, что обращение идёт именно из 1с. Посмотреть можно через fiddler (эту часть я не очень понимаю).

Весь процесс обмена можно посмотреть с помощью демо лаборатории 1с-битрикс развернув тестовый сайт
4. Xershi 1484 05.05.18 23:41 Сейчас в теме
(1) гет запрос отправляет ашттп соединение. Если оно с логином, значит авторизация через него идет.
7. starik-2005 3036 06.05.18 13:49 Сейчас в теме
(1) а что, ctrl+f1 сломался?

Все там просто:
1. Создаем соединение.
Соединение = Новый HTTPСоединение(адрес, порт, что-то там, включая ЛОГИН, ПАРОЛЬ и сертификат для https - достаточно создать пустой в большинстве случаев);

Здесь адрес - это именно доменный адрес, т.е. "www.myshoponbitrix.com" (мли даже без WWW - даже можно айпишник). В порт пишите номер порта, если он не равен "80", в ЛОГИН и ПАРОЛЬ - тот самый логин и пароль для авторизации.
2. Создаем запрос.
Запрос = Новый HTTPЗапрос(относительный УРЛ);

В относительный УРЛ можно прописать как раз это самое "/1c_exchange.php?type=catalog&mode=checkauth" (прям вот так и прописать).
3. Отправляем запрос на сайт.
Результат = Соединение.Получить(Запрос);

Тут мы посылаем GET. Получаем результат запроса - тот самый суксь или отсыл к праотцам. Для POST нужно использовать Результат = ОтправитьДляОбработки(Запрос) - в общем просто все.

http://helpme1c.ru/rabota-s-http-zaprosami-get-i-post-v-yazyke-1s-8-3-8-2-v-primerax - здесь хорошо про все варианты рассказано, но несколько устарел сам код примеров.
8. Sapiens_bru 4 07.05.18 05:13 Сейчас в теме
(1) Запустил соединение из 1С с авторизацией и без, поймал фидлером. Отличаются они на строку
Authorization: Basic dXNyOnB3ZA== , что раскладывается на "usr:pwd" , введённые мною для теста.
Гуглите в сторону базовой авторизации.
2. cassper 05.05.18 22:50 Сейчас в теме
Логин и пароль передаётся через httpсоединение.
Из него потом делается запрос к скрипту с параметрами. Результат либо успешный, либо с ошибками.
5. user970659 06.05.18 12:51 Сейчас в теме
Теперь становится понятнее. а как из HTTP заголовка получить данные для авторизации?
6. Xershi 1484 06.05.18 13:18 Сейчас в теме
(5) парсить, обычно там строка с разделителем ";".
9. user970659 07.05.18 11:17 Сейчас в теме
Всё стало понятно, когда разобрался, что 1С использует BASIC авторизацию
10. svilsa 12 08.11.22 12:51 Сейчас в теме
Если тестировать через postman авторизацию обмена 1C и сайта на Битрикс, то надо добавить 2 параметра: https://mymymy.by/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth и способ авторизации - Basic и там заполнить логин и пароль
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот