【发布时间】:2016-08-15 20:12:06
【问题描述】:
大家好,我在使用 Slim 中间件时遇到了一些问题。
我创建了一个中间件,用于检查用户是否使用 Facebook 登录并拥有特定的电子邮件地址。所以现在当我使用 PHPStorm RESTful 测试工具调用 url 时,我应该无法将数据发布到服务器...... 但是重定向不起作用,所以我可以将数据发送到服务器。
/**
* Admin Middleware
*
* Executed before /admin/ route
*/
$adminPageMiddleware = function ($request, $response, $next) {
FBLoginCtrl::getInstance();
$user = isset($_SESSION['user']) ? $_SESSION['user'] : new User();
if (!($user->getEmail() == ADMIN_USER_EMAIL)) {
$response = $response->withRedirect($this->router->pathFor('login'), 403);
}
$response = $next($request, $response);
return $response;
};
/**
* Milestone POST Method
*
* Create new Milestone
*/
$app->post('/admin/milestone', function (Request $request, Response $response) use ($app) {
$milestones = $request->getParsedBody();
$milestones = isset($milestones[0]) ? $milestones : array($milestones);
foreach ($milestones as $milestone) {
$ms = new Milestone();
$msRepo = new MilestoneRepository($ms);
$msRepo->setJsonData($milestone);
if (!$msRepo->createMilestone()) {
return $response->getBody()->write("Not Okay");
};
}
return $response->getBody()->write("Okay");
})->add($adminPageMiddleware);
那么谁能给我一个提示可能是什么问题? 我尝试将相同的中间件添加到 get Route ......它在那里工作:/奇怪的东西。
【问题讨论】:
-
SESSION是在用户点击facebook登录后创建的,并被Facebook-PHP-SDK重定向
标签: php httprequest slim