我正在构建一个REST DB连接系统,用户只能根据client_id创建/获取/查询自己的数据,user_id无关紧要。我已经成功地实现了 oAuth 和映射器/资源对象,以配合我的实体/集合。使用访问令牌成功发出 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 ZFMvcAuthIdentityAuthenticatedIdentity());
}
在映射器中添加二传手/获取器。
protected $authenticatedIdentity;
public function setAuthenticatedIdentity(ZFMvcAuthIdentityAuthenticatedIdentity $authenticatedIdentity)
{
$this->authenticatedIdentity = $authenticatedIdentity;
}
protected function getAuthenticatedIdentity()
{
return $this->authenticatedIdentity;
}
最后。
print_r(get_class_methods($this->getAuthenticatedIdentity()));