Авторизация 1С на сайте PHP_AUTH_USER на CentOS apache

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

Так вот, начитавшись литературы, понял что 1с обменивается хедерами с сайтом и прописывает ему PHP_AUTH_USER и PHP_AUTH_PW. Но в моем случае не получилось их словить в  $_SERVER (возможно какие-то настройки в 1с не проставил).

Изначально планировалось словить данные после авторизации так:

<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];
$this->login = isset($_SERVER['PHP_AUTH_USER']) ? trim($_SERVER['PHP_AUTH_USER']) : null;
$this->password = isset($_SERVER['PHP_AUTH_PW']) ? trim($_SERVER['PHP_AUTH_PW']) : null;

if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq['user']) {
    return true;
}

Но 1с не отдавала ничего или сервер не мог принять эти данные (не смог найти причину).

1с авторизация

Моим решением стало пeренаправить HTTP:Authorization. Я использовал mod_rewrite на apache.

Обязательно в .htaccess должна быть строка:

RewriteEngine on

которая включает работу механизма преобразования в mod_rewrite.

В .htaccess после всех правил RewriteRule было добалвенно:

RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

REMOTE_USER - указывает что {HTTP:Authorization} будет писаться в $_SERVER['REDIRECT_REMOTE_USER'].

Данные прилетели в base64.

var_dump($_SERVER['REDIRECT_REMOTE_USER']);

["REDIRECT_REMOTE_USER"]=>
  string(18) "Basic dGVzdDp0ZXN0"

Сделал с ними нехитрую манипуляцию:

<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];

if ($_SERVER["REDIRECT_REMOTE_USER"]) {
    $info = base64_decode(end(explode(' ',$_SERVER["REDIRECT_REMOTE_USER"])));
    $info = explode(':', $info);
    $this->login = $info[0]; // Прилетело test логин
    $this->password = $info[1]; // Прилетело test пароль
}

if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq['user']) {
    return true;
}

1560 0

Комментарии

Пока нет ни одного отзыва. Оставьте отзыв первым
Только авторизованные пользователи могут оставлять комментарии Вход

Похожие статьи

Создать и скачать CSV на PHP

Рассмотрим возможность быстрого создания CSV файла с автоматическим скачиванием файла. Рассмотрим формирование, разделители и header для возможности скачать файл.