我使用Restler作为OAuth服务器,并在OAuthServer中实现iAuthenticate .__ isAllowed
public function __isAllowed() {
return self::$server->verifyResourceRequest(static::$request, null, $scope );
}
当我有多个apis时
$r = new Restler();
$r->addAuthenticationClass('OAuthServer', 'oauth')
$r->addAPIClass('EMail', 'email');
$r->addAPIClass('Member', 'member');
这是一个问题,我在每个api中都有不同的范围,我怎么知道在__isAllowed中调用了确切的api?
我知道使用“url”作为范围的解决方案,但是如果我仍然知道如何使用“email”或“member”作为范围呢?
感谢
答案 0 :(得分:0)
由于Authentication Class也是一个api类,因此它将rester实例作为restler属性
Restler有apiMethodInfo,它是ApiMethodInfo的一个实例,因此你可以执行以下操作来获取数据
class AccessControl implements iAuthenticate
{
/**
* @var \Luracast\Restler\Restler
*/
public $restler;
public function __isAllowed()
{
/**
* @var \Luracast\Restler\Data\ApiMethodInfo
*/
$info = $this->restler->apiMethodInfo;
$info->className;
$info->methodName;
}
}