Restler身份验证类和版本控制

时间:2013-10-31 14:12:20

标签: authentication restler

我在Restler版本3.0.0rc4中遇到版本控制和身份验证类问题。

在index.php文件中,将添加身份验证类和User类,如下所示:

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');

身份验证类如下所示:

namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}

User类如下所示:

namespace v2;
class User
{
    ...
}

这两个类都放在v2文件夹中。

调用身份验证类(获取令牌)没问题。调用User类时,由于Restler无法在Restler-> authenticate中初始化身份验证类,因此会遇到内部服务器错误。正在初始化的类是“OAuth2”,它应该是“v2 \ OAuth2”。

一种可能的解决方案是添加如下认证类:

$r->addAuthenticationClass('v2\\OAuth2');

此解决方案出现的问题是Resources类为身份验证类输出v1和v2 url,而该类仅存在于v2中:

  • v1 / resources / oauth2-v2.json显示api路径:“/ v1 /oauth2 /access_token.{format}”
  • v2 / resources / oauth2-v2.json显示api路径:“/ v2 /oauth2 /access_token.{format}”

有人可以对此有所了解吗? 是否可以为每个版本的api使用不同的身份验证类? 为什么Resources类会显示身份验证类的v1和v2路径,而只存在v2路径?

0 个答案:

没有答案