Базовая аутентификация с Slim не отвечает

Я реализую базовую аутентификацию с Slim и REST. Я установил базовую авторизацию через Composer и использовал приведенный ниже код.

<?php

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

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
"path" => "/admin", /* or ["/admin", "/api"] */
"realm" => "Protected",
"users" => [
"root" => "t00r",
"user" => "passw0rd"],
"callback" => function ($request, $response, $arguments) {
print_r($arguments);
}
]));

$app->get('/getLaboorState/:laboor_id', function($laboor_id) use ($app) {
$db =getDB();

$sql="SELECT status FROM laboor WHERE laboor_id='".$laboor_id."'";
$stmt = $db->query($sql);
$items = $stmt->fetchAll();
echo json_encode($items);});

$app->run();
?>

Когда я пытаюсь сейчас соединить / getLaboorState с Почтальоном, он ничего не возвращает. Я использовал те же имя пользователя и пароль в почтальоне, и ничего не показывает, но когда я беру базовую аутентификацию, она работает нормально.

Другие вопросы, после реализации базовой аутентификации, как я могу ограничить все тонкие API, чтобы бросить каждый API перед запуском запроса?

Это фотография от Почтальона:

Примечание: тогда я хочу использовать API с AJAX.

-1

Решение

вам нужно использовать $ authenticate ($ app), чтобы ограничить все тонкие api, чтобы бросить каждый api перед запуском запроса

$app->get('/profile(/)(:id)', $authenticate($app), function($laboor_id) use ($app) {
//Your logic here
})->name('profile');

$authenticate = function ($app) {
return function () use ($app) {
//your logic here
if (!isset($_SESSION['ID'])) {

$app->redirect($app->urlFor('loginpage'));

}
};
};

Используйте приведенный ниже код для отображения точной ошибки, возникающей при вызове Ajax-запроса.

header('Access-Control-Allow-Origin: *');
ini_set('display_errors', 1);
error_reporting(E_ALL);

Надеюсь, это поможет, примите ответ, если он работает .. или комментарий

0

Другие решения

Вы настроили двух пользователей:

  1. имя пользователя root с паролем t00r
  2. имя пользователя user с паролем passw0rd

Согласно вашему скриншоту вы пытаетесь использовать имя пользователя t00r с паролем passw0rd, Это не существует в вашей конфигурации. Используйте одну из комбинаций паролей имени пользователя, упомянутых выше.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector