2016-11-09 4 views
0

Ich habe fast alles mit JWT-Authentifizierung mit tuupola/slim-jwt-auth arbeiten. Eine Sache, bei der ich mir nicht sicher bin, ist die teilweise URL-Autorisierung.partielle URL benötigt JWT-Authentifizierung auf schlanke 3 PHP-Framework

kann sagen, ich habe die öffentliche URLs

www.xyz.com/api/v1/products 
www.xyz.com/api/v1/products/123 

Dann habe ich eine Sub-URL benötigen die Berechtigung nur für/interne

www.xyz.com/api/v1/products/123/internal 

In Middle, ich habe:

$jwt = new \Slim\Middleware\JwtAuthentication([ 
    "path" => ["/api", "/other"], 
    "passthrough" => ["/api/v1/products", "/other/urls"], 
    //more settings.... 
]); 

$app->add($jwt); 

also meine Frage ist: wie kann ich nur die/api/v1/products/123/internal

sichern

vielen Dank.

Antwort

1

Mit der Einstellung path legen Sie fest, dass der Pfad mit authentifiziert werden soll. Um alles zu authentifizieren, beginnend mit /api/v1/products/123/internal, können Sie Folgendes tun.

$jwt = new \Slim\Middleware\JwtAuthentication([ 
    "path" => ["/api/v1/products/123/internal"] 
]); 

$app->add($jwt); 

Allerdings ist es aus Ihrer Frage nicht klar, aber ich habe das Gefühl, Sie tatsächlich Produkt mit jeder ID authentifizieren mögen und nicht nur 123. Um dies zu erreichen Sie einen regulären Ausdruck verwenden können.

$jwt = new \Slim\Middleware\JwtAuthentication([ 
    "path" => ["/api/v1/products/(\d*)/internal"] 
]); 

$app->add($jwt); 
+0

Dank Mika, das ist genau das, was ich brauche, und Sie haben mein Missverständnis auch korrigiert. Prost. – triston