За последние 24 часа нас посетили 16689 программистов и 1620 роботов. Сейчас ищет 1301 программист ...

oData - авторизация

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dimanoss, 24 авг 2018.

  1. Dimanoss

    Dimanoss Активный пользователь

    С нами с:
    26 май 2010
    Сообщения:
    4
    Симпатии:
    0
    Проблемка: SAP-сервер настроен на обмен по oData. Чтобы PHP-скрипт прочитал данные, нужна авторизация.

    Доступ к URL конструкции http://user:password@addr работает без проблем, но смущает то, что при каждой транзакции нужно "светить" логин и пароль (от SAP) пользователя. Изначально скрипт будет работать в "локалке", но, чую всеми фибрами, что манагеры завопят о необходимости доступа к скрипту извне.

    Как можно изящнее, на Ваш взгляд обойти этот камешек? Сразу скажу, PHP ставить на тот же сервер, что и SAP, нельзя.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Когда такие штуки проходят через браузер, имя и пароль приходится вколачивать только одлин раз, дальше всё происходит гладко - "браузер всё помнит". Это потому, что в последующих запросах вместо имени и пароля отсылается заголовок Authorization. Вот можешь посмотреть какой именно: https://www.blitter.se/utils/basic-authentication-header-generator/

    То есть надо сделать такое же вычисление самому и отсылать только готовый заголовок в составе запроса!

    https://www.google.com/search?q=php count basic auth header
     
    Dimanoss нравится это.
  3. Dimanoss

    Dimanoss Активный пользователь

    С нами с:
    26 май 2010
    Сообщения:
    4
    Симпатии:
    0
    пока что реализовал так - при входе спрашиваю SAP-шный логин/пароль и записываю их в $_SESSION. При запросе URLа эти данные считываю из $_SESSION и кодирую их base64_encode(). Не знаю, насколько это безопасно и изящно (не исключаю, что позже вернусь к вопросу), но работает.