2016-04-24 3 views
0

Ich bin ziemlich neu in schlanken Rahmen und versucht, eine JSON-basierte API zu bauen. Alles, was ich möchte fragen, wie ich meine api api-Funktionen aufrufen, die einen Benutzernamen und ein Passwort habenproctect schlanke Rest API mit Benutzernamen und Passwort

Dies ist der Code meiner Ruhe api

require __DIR__ . '/vendor/autoload.php'; 


$app = new Slim\App(); 
//slim application routes 
$app->get('/', function ($request, $response, $args) { 
$response->withJson("Welcome Message", 201); 
return $response; 
}); 

$app->get('/orders/status/{status}', function ($request, $response, $args) { 

    return get_Orders($request, $response, $args); 

}); 



$app->run(); 


function get_Orders($request, $response, $args){ 

    if($args['status'] == "processing"){ 
     $response->withJson("list of processing orders}", 200); 
     return $response; 
    } 
    else{ 
     $response->withJson("Premission not guranted", 200); 
     return $response; 
    } 

} 

i bauen nur eine einfache get so schützen können nur diejenigen App Route und es funktioniert, aber wie kann ich dies sichern, so dass, wenn App einen gültigen Benutzernamen und ein Passwort haben, dann nur Ergebnis zurückgeben.

Antwort

1

Ich empfehle nicht HTTP-Basis-Authentifizierung.

Warum?

  1. HTTP Basic Auth sendet Client-Anmeldeinformationen über die Linie jede API-Anfrage Sie machen, und während sie verschlüsselt werden können, noch sind die Anmeldeinformationen im Freien. Es ist anfällig für Man-in-the-Middle-Angriffe. Selbst unter SSL/TLS-Verbindungen können sie anfällig sein.
  2. Sie können den Zugriff auf sichere Ressourcen nicht effizient einschränken, indem Sie nur den Benutzernamen und das Kennwort angeben. Der grundlegende Auth-Zugriff hat keinen Ablauf und bietet somit unbegrenzten Zugriff auf eine Ressource.
  3. Kein Schutz vor Angriffsschutz in Basic Auth. Sobald ein Benutzer-Berechtigungsnachweis kompromittiert ist, kann ein Exploit in der Zukunft so weit gemacht werden, daher ist es schwierig zu isolieren, wann und wo der Angriff begann.
  4. Es gibt keine Möglichkeit für einen Benutzer, einen Basic Auth-Zugriff zu widerrufen. Sehen Sie mehr dazu here.

Stattdessen. Verwenden Sie eine Token-basierte Authentifizierungsstrategie wie OAuth 2.0. Es ist robuster und sicherer. Es verwendet bei jeder Anforderung ein Token und keine Benutzeranmeldeinformationen. Token sind zeitlich begrenzt und resistent gegen Man-in-the-Middle- und CSRF-Angriffe.

Versuchen Sie, mehr über OAuth 2.0 zu erfahren; es gibt viele docs da draußen. Sie können eine vorhandene OAuth library für Ihre PHP JSON API verwenden.

2

Eine Möglichkeit ist die Verwendung HTTP Basic Authentication. Dafür können Sie Basic Authentication middleware verwenden. Installieren Sie zuerst die Middleware mit Composer.

composer require tuupola/slim-basic-auth 

Nach der Installation der Middleware fügen Sie es der Slim-App hinzu.

Jetzt sind alle Routen passwortgeschützt und Sie müssen auf Ihre Anfrage Benutzername und Passwort eingeben.

$ curl --user root:t00r https://localhost/api/something 
+0

werden Sie bitte ein Beispiel api Anruf nennen. Wie eine App ruft eine API-Funktion oben aufgeführten –

+0

'curl --user root: t00r http: // localhost/api/etwas ' –

Verwandte Themen