部分 url 需要在 slim 3 php 框架上进行 JWT 身份验证
partial url needs JWT authentication on slim 3 php framework
我几乎所有的东西都与 tuupola/slim-jwt-auth 一起使用 JWT 身份验证。我不确定该怎么做的一件事是部分 URL 授权。
假设我有 public URLs
www.xyz.com/api/v1/products
www.xyz.com/api/v1/products/123
然后我有一个 sub URL 只需要 /internal
的授权
www.xyz.com/api/v1/products/123/internal
在中间件中,我有:
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api", "/other"],
"passthrough" => ["/api/v1/products", "/other/urls"],
//more settings....
]);
$app->add($jwt);
所以我的问题是:我怎样才能只保护 /api/v1/products/123/internal
非常感谢。
使用 path
设置你设置的路径应该被验证。要验证以 /api/v1/products/123/internal
开头的所有内容,您可以执行以下操作。
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api/v1/products/123/internal"]
]);
$app->add($jwt);
但是您的问题并不清楚,但我感觉您实际上想要使用任何 ID 而不仅仅是 123 来验证产品。为此,您可以使用正则表达式。
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api/v1/products/(\d*)/internal"]
]);
$app->add($jwt);
我几乎所有的东西都与 tuupola/slim-jwt-auth 一起使用 JWT 身份验证。我不确定该怎么做的一件事是部分 URL 授权。
假设我有 public URLs
www.xyz.com/api/v1/products
www.xyz.com/api/v1/products/123
然后我有一个 sub URL 只需要 /internal
的授权 www.xyz.com/api/v1/products/123/internal
在中间件中,我有:
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api", "/other"],
"passthrough" => ["/api/v1/products", "/other/urls"],
//more settings....
]);
$app->add($jwt);
所以我的问题是:我怎样才能只保护 /api/v1/products/123/internal
非常感谢。
使用 path
设置你设置的路径应该被验证。要验证以 /api/v1/products/123/internal
开头的所有内容,您可以执行以下操作。
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api/v1/products/123/internal"]
]);
$app->add($jwt);
但是您的问题并不清楚,但我感觉您实际上想要使用任何 ID 而不仅仅是 123 来验证产品。为此,您可以使用正则表达式。
$jwt = new \Slim\Middleware\JwtAuthentication([
"path" => ["/api/v1/products/(\d*)/internal"]
]);
$app->add($jwt);