|
Авторизация через Токен для HTTP запроса | ☑ | ||
---|---|---|---|---|
0
masi
18.04.24
✎
12:47
|
Ранее работали без токена и отправляли xml файл из 1с с помощью post запроса:
ssl1 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); HTTP = Новый HTTPСоединение(Сервер, , , , , , ssl1); HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс, ФайлРезультата, ЗаголовокHTTP); сейчас клиент написал, что будет использовать токен, и прислал строковое значение, подскажите как можно передать токен в http соединении? |
|||
1
Dzenn
18.04.24
✎
12:54
|
токен обычно ставится в заголовок в формате
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvZSBEb2UiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNTE2MjM5MDIyfQ.SdUMMAsFFk83SHyqGjfQ1pt8v_8t4WZku5Ty3CLMaH4 |
|||
2
Dzenn
18.04.24
✎
12:55
|
короче есть запрос, у запроса есть заголовок вида соответствие ключзначение, просто вставляешь конструкцию вида
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен); |
|||
3
masi
18.04.24
✎
13:19
|
Спасибо за ответ, т.е. вот так должно сработать?
сервер = "https://riester-lk.grphn-dev.ru/json/order/bill/"; ssl1 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); HTTP = Новый HTTPСоединение(Сервер, , , , , , ssl1); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Accept-Language", "ru"); ЗаголовокHTTP.Вставить("Authorization", "Bearer"+"IUH36POKWED8748WED5YHNU74JYU8WED57"); HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс, ФайлРезультата, ЗаголовокHTTP); у меня вызывает ошибку Couldn't resolve host name |
|||
4
arsik
18.04.24
✎
13:35
|
Couldn't resolve host name - и при чем тут токен? Переводчики есть в зале? Нужно перевести на нубский.
|
|||
5
Garykom
18.04.24
✎
13:36
|
сервер = "https://riester-lk.grphn-dev.ru/json/order/bill/"; хотя бы СП открой для Новый HTTPСоединение( |
|||
6
Garykom
18.04.24
✎
13:37
|
(0)
Ранее работали без токена и отправляли xml файл из 1с с помощью post запроса:
судя по "Couldn't resolve host name" кто то пи*т |
|||
7
Garykom
18.04.24
✎
13:38
|
ну и выкладывать токен в паблик это гм
да еще с адресом полным |
|||
8
masi
18.04.24
✎
13:54
|
Спасибо за ответы, это тестовая среда, отделена от рабочей, поэтому вряд ли там кто-то что-то может украсть или испортить, но спасибо за предупреждение.
|
|||
9
Мультук
18.04.24
✎
13:59
|
||||
10
Garykom
18.04.24
✎
14:06
|
(9) Там не все HTTP ответы есть
|
|||
11
masi
18.04.24
✎
14:29
|
хотя бы СП открой для
Новый HTTPСоединение( можете расшифровать, что тут имеется в виду? СП открой... |
|||
12
Garykom
18.04.24
✎
14:31
|
(11) хотя бы правила форума почитай, ссылка внизу "Правила", там "Словарик:"
https://mista.ru/help/rules.html |
|||
13
masi
18.04.24
✎
15:06
|
Спасибо, посмотрю в синтаксис помощнике
|
|||
14
ttk
18.04.24
✎
15:30
|
(3)
1. сервер у тебя должен быть= "riester-lk.grphn-dev.ru" 2. между "Bearer" и токеном пробел ставят |
|||
15
masi
22.04.24
✎
10:26
|
Всем большое спасибо за ответы
вот такой код отправки запроса получился, и сейчас заголовки запроса доходят до сервера и ответ 200, а тело запроса не приходит... сервер = "riester-lk.grphn-dev.ru/order/account/"; АдресСтраницы = "index.php"; ssl1 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Accept-Language", "ru"); ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8"); ЗаголовокHTTP.Вставить("Content-Language", "ru"); ЗаголовокHTTP.Вставить("Content-Charset", "utf-8"); ЗаголовокHTTP.Вставить("Authorization", "IUH...."); ЗаголовокHTTP.Вставить("order-id", СокрЛ(ДокЗаказ.МПА_IdЗаказа)); ЗаголовокHTTP.Вставить("token", "IUH..."); ЗаголовокHTTP.Вставить("Cache-Control", "no-cache"); ЗаголовокHTTP.Вставить("Postman-Token", "97f18a65-78fa-46c0-8588-f1b650b2571b"); ЗаголовокHTTP.Вставить("Host", "riester-lk.grphn-dev.ru"); ЗаголовокHTTP.Вставить("Vary", "HTTPS"); ЗаголовокHTTP.Вставить("P3P", "policyref=/bitrix/p3p.xml, CP=NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"); ЗаголовокHTTP.Вставить("Accept-Encoding", "gzip, deflate, br"); ЗаголовокHTTP.Вставить("Connection", "keep-alive"); ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=--------------------------427694581768594079778688"); ЗаголовокHTTP.Вставить("Content-Length", "56"); HTTP = Новый HTTPСоединение(Сервер, , , , , , ssl1); //отправка запроса ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницы, ЗаголовокHTTP); ТелоPOSTЗапроса = "" +Символы.ПС; ТелоPOSTЗапроса = "token: ""IUH3...""" +Символы.ПС; ТелоPOSTЗапроса = ТелоPOSTЗапроса+"order-id: ""147"""; ЗапросHTTP.УстановитьТелоИзСтроки(ТелоPOSTЗапроса, КодировкаТекста.ANSI); ЗапросHTTP.УстановитьИмяФайлаТела(ИмяФайлаОтправки); ОтветHTTP = HTTP.ОтправитьДляОбработки(ЗапросHTTP, файлрезультата); Сообщить("Ответ post запроса "+ОтветHTTP.КодСостояния); |
|||
16
Мультук
22.04.24
✎
10:34
|
(15)
1) Сокращу ваш код до: сервер = "riester-lk.grphn-dev.ru/order/account/"; HTTP = Новый HTTPСоединение(Сервер, , , , , , ssl1); Либо в HTTPСоединение что-то поменялось, и оно согласно вместо "riester-lk.grphn-dev.ru" кушать указанную выше строку, либо... 2) А где Bearer ? Уже не нужен? ЗаголовокHTTP.Вставить("Authorization", "IUH...."); |
|||
17
masi
22.04.24
✎
11:06
|
2) А где Bearer ? Уже не нужен?
ЗаголовокHTTP.Вставить("Authorization", "IUH...."); заметили, что срабатывает и с Bearer и без этого, т.е. причина того, что тело запроса не доходит(а заголовки доходят) не в способе передачи токена |
|||
18
arsik
22.04.24
✎
11:42
|
сервер = "riester-lk.grphn-dev.ru";
АдресСтраницы = "/order/account/index.php"; |
|||
19
masi
22.04.24
✎
12:15
|
поменяли, не помогло((
|
|||
20
arsik
22.04.24
✎
12:36
|
(19) Я вижу, что у тебя в коде бардак. Не понимая тыкать во все бесполезно. Бери отладчик и го проверять
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |