0
我正在構建一個REST數據庫連接系統,用戶只能根據client_id或user_id創建/獲取/查詢自己的數據並不重要。我成功實現了oAuth和Mapper/Resource對象,以便與我的實體/集合一起使用。在使用訪問令牌成功發出oAuth請求後,是否有建議的方式來獲取client_id或user_id,以便我可以根據誰發出請求來過濾數據庫查詢?基於oAuth請求的Apigility自定義Db過濾器
我正在構建一個REST數據庫連接系統,用戶只能根據client_id或user_id創建/獲取/查詢自己的數據並不重要。我成功實現了oAuth和Mapper/Resource對象,以便與我的實體/集合一起使用。在使用訪問令牌成功發出oAuth請求後,是否有建議的方式來獲取client_id或user_id,以便我可以根據誰發出請求來過濾數據庫查詢?基於oAuth請求的Apigility自定義Db過濾器
已解決。一個簡單的解決方案是在API配置中將\ ZF \ MvcAuth \ Identity \ AuthenticatedIdentity的實例注入到服務映射器中。
if ($sm->has('api-identity')) {
$mapper->setAuthenticatedIdentity($sm->get('api-identity'));
} else {
$mapper->setAuthenticatedIdentity(new \ZF\MvcAuth\Identity\AuthenticatedIdentity());
}
在Mapper中添加setter/getters。
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()));