2016-02-11 3 views
0

Я создаю подключенную систему REST DB, в которой пользователи могут создавать или выбирать/запрашивать свои собственные данные на основе client_id или user_id, не имеет значения. Я успешно реализовал объекты oAuth и Mapper/Resource для совместного использования с Entity/Collection. После успешного запроса oAuth, использующего токен доступа, есть рекомендуемый способ получить client_id или user_id, чтобы я мог фильтровать запросы к базе данных на основании того, кто сделал запрос?Apigility Custom Db Filter на основе запроса oAuth

ответ

1

Решено. простое решение в конфигурации 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 добавить сеттер/геттеры.

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()));