我在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认证通话。
答案 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