首页 > 解决方案 > Slim 框架:无法使用 JWT 令牌

问题描述

我正在开发一个苗条的 REST API,我想用 JWT 令牌保护它。我尝试了很多教程,并且能够使事情正常进行。

我使用:
slim 4.*
slim/psr7 0.6.0
tuupola/slim-jwt-auth ^3.4
tuupola/cors-middleware ^1.1

Ubuntu 19.10 和 Xampp

我有 2 条路由(POST /login 和 GET /api/test)
我希望能够使用不带令牌的 /login 路由,而另一条带有令牌。所以我写道:

$app->add(new Tuupola\Middleware\JwtAuthentication([
    "path" => "/api",
    "secret" => getenv ("SPROUTCH_TOKEN"),
    "error" => function ($request, $response, $arguments) {
        $data["status"] = "error";
        $data["message"] = $arguments["message"];
        return $response
            ->withHeader("Content-Type", "application/json")
            ->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
    },
]));

在那种情况下,没有什么是安全的,所以我尝试了这个:

$app->add(new Tuupola\Middleware\JwtAuthentication([
    "secret" => getenv ("SPROUTCH_TOKEN"),
    "error" => function ($request, $response, $arguments) {
        $data["status"] = "error";
        $data["message"] = $arguments["message"];
        return $response
            ->withHeader("Content-Type", "application/json")
            ->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
    },
]));

当然,我无法访问任何东西。

标签: phpauthenticationcomposer-phpjwtslim

解决方案


问题只是“路径”键只采用绝对路径


推荐阅读