SLIM BasicAuth没有用

时间:2014-11-20 16:19:49

标签: authentication slim

抱歉我的英语。

我测试了我的新项目API REST的SLIM框架。

我使用认证SSL在线安装了我的Apache CGI服务器上的SLIM:好吧它有效!我可以从我的计算机访问我的资源(例如https://domaine.fr/v1/test

我用htaccess文件测试了基本身份验证。我使用用户/密码来访问我的资源:它有效!

现在,我想使用https://github.com/tuupola/slim-basic-auth

在SLIM中使用基本身份验证进行测试

但它不起作用!它一直在问我登录名和密码!

我的htaccess文件:

Satisfy any
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

我的index.php(苗条):

require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();

$app->add(new \Slim\Middleware\HttpBasicAuthentication(array(
    "realm" => "Here be dragons.",
    "users" => array(
        "root" => "t00r",
        "test" => "test"
    )
)));

我不明白为什么它不起作用。

谁可以帮助我?

谢谢

2 个答案:

答案 0 :(得分:1)

刚刚测试过,这里有适合您的代码。请注意,由于您使用composer安装依赖项,因此最好使用composer autoloading。

require_once "../vendor/autoload.php";

$app = new \Slim\Slim();

$app->add(new \Slim\Middleware\HttpBasicAuthentication(array(
    "realm" => "Here be dragons.",
    "users" => array(
        "root" => "t00r",
        "test" => "test"
    )
)));

$app->get("/", function() {
    print "Foo";
});

$app->run();

答案 1 :(得分:0)

抱歉我的回复很晚,我开始使用Composer / Slim,我花了一个不眠之夜在我的电脑上进行本地测试(Windows 7)。我安装了Composer for Windows,Slim with Composer和tuupola / slim-basic-auth with Composer。我创建了两条路线,一条是公共的,一条是私人的它在本地工作:“http:// mycomputer / ws-bots”和“http:// mycomputer / ws-bots / admin”,我输入“test / test”并显示消息“admin”。

所以我在两个方面测试了我的VPS Linux(Centos):

第一种方式)我在/ httpdocs / ws-bots / v2 /中复制了filezilla,所以我有:

- Vendor folder,
- Composer.json,
- composer.lock
- And composer.phar

在供应商文件夹中,有:

- Compose folder,
- Ircmaxell folder,
- Slim folder,
- Tuupola folder,
- And autoload.php

我创建了一个虚拟主机:https:// ws2-bots.faistescourses.fr => / httpdocs / ws-bots / v2 / vendor / Slim / slim:好的

我更改了index.php中的自动加载路径“/var/www/vhosts/faistescourses.fr/httpdocs/ws-bots/v2/vendor/autoload.php”:好的

$app-> add (new \ Slim \ Middleware \ HttpBasicAuthentication (array (
"Path" => "/ admin"
"realm" => "Private"
"users" => array (
"root" => "t00r"
"test" => "test"
)
)));

我可以访问:https:/ /ws2-bots.faistescourses.fr:好的

$ app-> get ('/', function () {
print "Public";
});

如果我测试https://ws2-bots.faistescourses.fr/admin:不工作

$ app-> get ("/ admin", function () {
print "Private";
});

我输入“root / t00r”或“test / test”登录/密码:它不起作用!他要我输入登录名/密码。

如果我用/ * .. * /禁用身份验证,我可以访问/ admin。

第二种方式)我在“/var/www/vhosts/faistescourses.fr/httpdocs/ws-bots/v2/上安装了我的VPS,Composer,Slim with Composer和tuupola / slim-basic-auth与Composer “。我改变了路径和autoload.php index.php,如上所述。 我也有同样的问题。如果我使用/../禁用身份验证,则可以正常运行。

所以我不明白,我在其他地方有问题吗?路径?

您可以使用“root / t00r”或“test / test”测试https:// ws2-bots.faistescourses.fr和https:// ws2-bots.faistescourses.fr/admin。

感谢您的帮助!