gpt4 book ai didi

php - 在 Apigility Resource 中获取当前用户信息

转载 作者:可可西里 更新时间:2023-11-01 13:49:30 24 4
gpt4 key购买 nike

我刚开始使用 Apigility 和 oAuth2,我想知道在从数据库中获取信息时是否有可能获得当前经过身份验证的“已登录”用户。

我目前有以下代码:

/**
* Fetch all or a subset of resources
*
* @param array $params
* @return mixed
*/
public function fetchAll($params = array())
{
var_dump($params);
// Using Zend\Db's SQL abstraction
$sql = new \Zend\Db\Sql\Sql($this->db);
//I would like to get the currently logged in user here... but how?
$select = $sql->select('projects')->where(array('userid' => 1));;

// This provides paginated results for the given Select instance
$paged = new \Zend\Paginator\Adapter\DbSelect($select, $this->db);

// which we then pass to our collection
return new ProjectsCollection($paged);
}

我已经做了很多搜索,但我不知道如何访问用户信息或访问 token ,我是否需要为此解析请求 header ?

最佳答案

我也在找。我没有找到任何相关文件。但答案很简单:

资源类继承ZF\Rest\AbstractResourceListener,其中已经有一个方法getIdentity

/**
* Fetch all or a subset of resources
*
* @param array $params
* @return mixed
*/
public function fetchAll($params = array())
{
// if user isn't authenticated return nothing
if(!$this->getIdentity() instanceof ZF\MvcAuth\Identity\AuthenticatedIdentity) {
return [];
}

// this array returyour query here using $userIdns the authentication info
// in this case we need the 'user_id'
$identityArray= $this->getIdentity()->getAuthenticationIdentity();

// note, by default user_id is the email (username column in oauth_users table)
$userId = $identityArray['user_id'];

// fetch all using $userId
}

您还可以在 RPC 服务中使用 getIdentity

我使用的是最新版本的 apigility。

关于php - 在 Apigility Resource 中获取当前用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722291/

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