Slim V2中的Http Basic Auth

时间:2016-10-19 08:01:32

标签: php api slim

我在Slim安装下使用HTTP基本身份验证时遇到了问题。

我必须创建一个只在http调用经过身份验证时调用类方法的API。

这是我的标记:

<?php
$httpAuth = function () use ($app) {
    $app->add(new \Slim\Middleware\HttpBasicAuthentication(array(
    "path" => "/api/generateScratch",
    "realm" => "Protected",
    "users" => array(
        "root" => "t00r",
        "user" => "passw0rd"
    ))));
};

$app->get('/api/generateScratch', $httpAuth, function() use($app,$db) {
    $params =  $app->request->getBody() ;
    if(!empty($params)){
        print $params;
        require_once ('classes/codes/codes.php');
        $codes = new Codes($db, 1);
        $res = $codes->assign($params);
    }
});
?>

我怎样才能完成我的api?我不知道如何进行http认证通话。

2 个答案:

答案 0 :(得分:0)

根据documentation安装Slim 2版本的中间件。

$ composer require tuupola/slim-basic-auth:^1.0

然后你可以做到以下几点。

$app = new \Slim\Slim();

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/api/generateScratch",
    "realm" => "Protected",
    "users" => [
        "root" => "t00r",
        "someone" => "passw0rd"
    ]
]));

$app->get('/api/generateScratch', function() use ($app, $db) {
    /* Here be dragons... */
});

如果您希望对所有API路由进行身份验证,请执行此操作。

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/api",
    "realm" => "Protected",
    "users" => [
        "root" => "t00r",
        "someone" => "passw0rd"
    ]
]));

答案 1 :(得分:0)

米卡,

我添加一些信息:

  • 我正在使用SLim v2

  • 我正在使用之前的超薄安装,因此我无法使用$ app-&gt; run或$ app = new \ Slim \ Slim();因为这些指令在项目主索引中.php