Безопасный Slim-Rest с базовой аутентификацией

я новичок в написании Rest-Apis с PHP. Поэтому я использую Slim-Framework для своего API. Теперь я хочу защитить API с помощью HTTP-Basic-AUTH.

Моим первым решением было сделать это с помощью htaccess и htpasswd и отправить учетные данные в заголовке, например

curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: Basic " . base64_encode("test:test")));
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

Так что работайте, если я меняю пользователя или пароль, сервер выдает ошибку.

Если я ищу в Интернете для защиты Slim Rest Api, я всегда нахожу такие вещи, как Slim/Extras/HttpBasicAuth.php... Я реализовал это, но у меня есть проблемы с пониманием этого. Мне также нужны файлы .htaccess и htpasswd, верно?

Если да, то каковы преимущества использования HttpBasicAuth?

Джоги


person user1121575    schedule 04.12.2013    source источник


Ответы (1)


Если вы используете Basic Auth Middleware для Slim, вам не нужны файлы .htaccess или .htpasswd. Вы включаете учетные данные где-то в своем коде. Что-то типа:

$app = new \Slim\Slim();

$app->add(new \Slim\Middleware\HttpBasicAuth(array(
    "path" => "/api",
    "realm" => "Protected",
    "users" => array(
        "root" => "t00r",
        "user" => "passw0rd"
    )
)));

$app->get("/", function() {
    echo "No password needed.";
});

$app->get("/api", function() {
    echo "API protected by password";
});

$app->run();
person Mika Tuupola    schedule 04.07.2014