|   |   | 
| 
 | Авторизация на сайте средствами 1С | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ivan093 26.05.20✎ 16:25 | 
        Всем привет. 
 Прошу помощи с задачей авторизации на сайте через 1С. Есть сайт: https://nsddata.ru/ru, там есть кнопка Вход, которая отсылает на форму авторизации на сайт https://sso.moex.com/auth Вот хотелось бы автоматизировать некоторые действия в 1с, а именно авторизоваться, а далее уже делать запросы к первому сайту. Но пока не могу понять как. | |||
| 1
    
        ДенисЧ 26.05.20✎ 16:26 | 
        "Welcome to Keycloak"
 Я бы не рисковал ходить на сайт и вводить пароль на сайте с названием "клоака"... | |||
| 2
    
        arsik гуру 26.05.20✎ 16:46 | 
        (0) Ставь Fiddler. Посмотри внутренности авторизации через браузер. 
 Потом то же самое делай в 1С. Скорее всего на https://sso.moex.com/auth - ты должен получить токен. И уже с этим токеном посылать запросы на https://nsddata.ru/ru | |||
| 3
    
        Гений 1С гуру 26.05.20✎ 18:15 | 
        (2) селениум советовали?
 ну или веб-браузер на формму, там переходишь, заполняешь поля и клик посылаешь. | |||
| 4
    
        Ivan093 26.05.20✎ 18:54 | 
        (1) )) Я ссылку обрезал, полная выглядит так, похоже тут тоже токены какие-то, которые генерит первый сайт.
 https://sso.moex.com/auth/realms/moex/protocol/openid-connect/auth?kc_locale=ru&response_type=code&redirect_uri=https%3A%2F%2Fnsddata.ru%2Fru&client_id=NSDDATA&nonce=62ffba1566b5c1016d388b3c74f48de2&state=a2d366b9b88bcd2d14421b147f643dac&scope=openid | |||
| 5
    
        arsik гуру 27.05.20✎ 00:16 | 
        (4) Ну так через фиддлер будет видно все.
 Ты запрос к основному. В ответе прилетит перенаправление (та самая ссылка с кодом, что-то там 300-310 https://developer.mozilla.org/ru/docs/Web/HTTP/Redirections). Ну и далее все как в (2) | |||
| 6
    
        Ivan093 27.05.20✎ 07:01 | 
        Буду пытать. Спасибо!     | |||
| 7
    
        АНДР 27.05.20✎ 07:08 | 
        (0) См. доку. В конце запроса надо указать свой api key.     | |||
| 8
    
        Ivan093 27.05.20✎ 07:09 | 
        (7) Там есть апи, но доступ к нему платный и не дешевый. Клиенту иногда надо инфу оттуда выдергивать, вот и решил схитрить (клиент, а не я): без апи странички парсить.     | |||
| 9
    
        idemat 27.05.20✎ 07:46 | 
        (3) ну или веб-браузер на формму, там переходишь, заполняешь поля и клик посылаешь.
 мне такое же нужно, можно простенький пример? | |||
| 10
    
        vde69 27.05.20✎ 07:53 | 
        не хотел писать, но все-же напишу
 все системы авторизации работают на куках или на параметрах сесии, в 1с с этим сильные проблемы, по этому прежде чем начинать делать это в 1с почитайте про то где и как у вас будут хранится локальные данные хеша авторизации | |||
| 11
    
        Ivan093 27.05.20✎ 08:00 | 
        (10) Ну да, я примерно так и представлял. Решал подобные задачи, но когда уже известно какие запросы делать и в каком виде пароли посылать. Тут все посложнее оказалось. Дело еще усугубляется, что платформа 1С 8.1 )) Вот и хочу понять, реально сделать или нет.
 (3) Вывел на форму страницу, но не могу достучаться до элементов страницы куда логи/пароль вводить. Устроил бы полуручной вариант: авторизация руками 1 раз, а дальше уже код 1с работает в этой же сессии по сути. | |||
| 12
    
        Василий Алибабаевич 27.05.20✎ 08:27 | 
        (11) "не могу достучаться до элементов страницы куда логи/пароль вводить."
 Это тебе 1С что ли? Зачем "достучаться до элементов"? Ты код странички смотрел? : Вот форма авторизации : " <form action="https://sso.moex.com/auth/realms/moex/login-actions/authenticate?code=uW8s5wQin-rNspukEI7deSRu7vh3izhsqhijuIkDVbI&execution=b43d1d76-147d-4241-8b4e-7f316b6723b8&client_id=NSDDATA&tab_id=0fzl8C49Tkc" Вот элементы управления : 1. <input autofocus type="text" name="credentials" placeholder="E-mail" class="form-control input-lg"> 2. <input type="password" name="password" placeholder="Пароль" class="form-control input-lg"> 3. <input type="hidden" name="CSRF" value="5z39/JTyGRMqYnr5t3Yv1JWlPQoi1l7csSfZkmWHpSE="> Параметры передаются методом POST. Заполни параметры "code", "execution", "client_id", "tab_id", "credentials", "password", "CSRF". И передай в запросе на сервер. Все. И не нужно "на форме" ничего заполнять и ничем кликать. И даже форму открывать не нужно. Просто передай обработчику "https://sso.moex.com/auth/realms/moex/login-actions/authenticate" POST-запрос с парвильно заполненными параметрами. Фсьо. | |||
| 13
    
        Ivan093 27.05.20✎ 08:30 | 
        (12) Спасибо, уже ближе! 
 Я пробовал через ПолеHTMLДокумента.Документ искать. Где-то находил пример такой авторизации... | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |