Задать вопрос
@Drumsid

Как сделать авторизацию по ссылке для фида?

Как сделать авторизацию для доступа к файлу у себя на сайте? Чтоб работало через такую ссылку?
http://login:password@example.com/file.txt
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
все , что вы хотите называется basic auth или HTTP authentication. это когда ставится логин и пароль на страницу. можете погуглить как добавить на страницу такую авторизацию. после чего вы можете передавать логин и пароль разделенные двоеточием как в вашем примере перед @
Ответ написан
Комментировать
dima9595
@dima9595
Junior PHP
Вероятней всего никак. Это не валидный url адрес, соответственно он не сработает.
Ответ написан
@ksnk
Вот упрощенный пример. Пароль-пользователь указан в файле. Каталог для выгрузки файлов - там же.

<?php

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Authentification required.';
    exit;
} else {
    // config!
    $password='test';
    $user='test';
    $upload_dir=$_SERVER['DOCUMENT_ROOT'].'/tmp/';
    //

    if($_SERVER['PHP_AUTH_USER']!=$user ||$_SERVER['PHP_AUTH_USER']!=$password){
        echo 'No user found, sorry.';
        exit;
    }

    $filename=$_SERVER['QUERY_STRING'];
    if(!is_readable($upload_dir.$filename)){
        echo 'No file found, sorry.';
        exit;
    }

    header('Content-type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($upload_dir.$filename));
    readfile($upload_dir.$filename);
}

Использование

https://test:test@site/file.php?filetoupload.txt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы