簡體   English   中英

基於oAuth請求的適應性自定義Db過濾器

[英]Apigility Custom Db Filter Based on oAuth Request

我正在構建一個REST DB連接的系統,用戶只能基於client_id或user_id創建/獲取/查詢自己的數據,這無關緊要。 我已經成功實現了oAuth和Mapper / Resource對象以及我的Entity / Collection。 使用訪問令牌成功完成oAuth請求后,是否有建議的方法來獲取client_id或user_id,因此我可以根據誰提出請求來過濾數據庫查詢?

解決了。 一個簡單的解決方案是在API配置中將\\ ZF \\ MvcAuth \\ Identity \\ AuthenticatedIdentity的實例注入服務映射器。

if ($sm->has('api-identity')) {
    $mapper->setAuthenticatedIdentity($sm->get('api-identity'));
} else {
    $mapper->setAuthenticatedIdentity(new \ZF\MvcAuth\Identity\AuthenticatedIdentity());
}

在“映射器”中添加setter / getter。

protected $authenticatedIdentity;

public function setAuthenticatedIdentity(\ZF\MvcAuth\Identity\AuthenticatedIdentity $authenticatedIdentity)
{
    $this->authenticatedIdentity = $authenticatedIdentity;
}

protected function getAuthenticatedIdentity()
{
    return $this->authenticatedIdentity;
}

最后。

print_r(get_class_methods($this->getAuthenticatedIdentity()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM