我怎么知道在ithenticate._isAllowed中调用了哪个api

时间:2013-12-06 09:47:36

标签: php oauth-2.0 restler

我使用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”作为范围呢?

感谢

1 个答案:

答案 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;
    }
}