gpt4 book ai didi

PHP Slim Framework REST API - 在每个路由之前验证访问 token ?

转载 作者:行者123 更新时间:2023-12-02 21:35:40 25 4
gpt4 key购买 nike

我已经设置了一个 RESTful API 和一个单独的客户端网站来调用它。

客户端网站使用 oAuth2 的资源所有者密码凭据授予类型从 API 获取访问 token (来自 https://myapi.com/v1/oauth/token)

对 API 的每个其他调用都必须包含访问 token 才能访问数据。

使用 Slim 框架,如何获取访问 token 、在数据库中查询属于该访问 token 的用户并使该用户模型可用于路由?

我想做这样的事情,但我不知道该怎么做......

function validateAccessToken() {
$access_token = $_GET["access_token"];
$user = \models\user::where("access_token", "=", $access_token)->first();

if($user === NULL) {
throw new exception("Invalid access token");
}

return $user
}

$app->get("/v1/emails", validateAccessToken(), function() use ($app) {
$emails = \models\emails::where("user_id", "=", $user->id)->toArray();
echo(json_encode($emails));
});

最佳答案

$validateAccessToken= function($app) {
return function () use ($app) {
$access_token = $app->request()->get("access_token");
$user = \models\user::where("access_token", "=", $access_token)->first();

if($user === NULL) {
$app->redirect("/errorpage");
}


};
};

$app->get("/v1/emails", $validateAccessToken($app), function() use ($app) {
// here you have to define $user once again
$access_token = $app->request()->get("access_token");
$user = \models\user::where("access_token", "=", $access_token)->first();

$emails = \models\emails::where("user_id", "=", $user->id)->toArray();
echo(json_encode($emails));
});

关于PHP Slim Framework REST API - 在每个路由之前验证访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21435061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com