基于oAuth请求的Apigility自定义Db过滤器

时间:2016-02-11 11:20:20

标签: php zend-framework2 apigility

我正在构建一个REST DB连接系统,用户只能根据client_id或user_id创建/获取/查询自己的数据并不重要。我已经成功实现了oAuth和Mapper / Resource对象以与我的实体/集合一起使用。使用访问令牌成功完成oAuth请求后,是否有建议的方法来获取client_id或user_id,以便根据发出请求的人筛选数据库查询?

1 个答案:

答案 0 :(得分: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中添加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()));