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