Authentication Restler身份验证类和版本控制

Authentication Restler身份验证类和版本控制,authentication,restler,Authentication,Restler,我在Restler版本3.0.0rc4中遇到版本控制和身份验证类问题 在index.php文件中添加了身份验证类和用户类,如下所示: Defaults::$useUrlBasedVersioning = true; $r->setAPIVersion(2); $r->addAuthenticationClass('OAuth2'); $r->addAPIClass('User'); namespace v2; use Luracast\Restler\iAuthenticat

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

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

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');
namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}
namespace v2;
class User
{
    ...
}
$r->addAuthenticationClass('v2\\OAuth2');
身份验证类如下所示:

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');
namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}
namespace v2;
class User
{
    ...
}
$r->addAuthenticationClass('v2\\OAuth2');
用户类如下所示:

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');
namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}
namespace v2;
class User
{
    ...
}
$r->addAuthenticationClass('v2\\OAuth2');
这两个类都放在v2文件夹中

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

一种可能的解决方案是添加te身份验证类,如下所示:

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');
namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}
namespace v2;
class User
{
    ...
}
$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使用不同的身份验证类?
资源类如何显示身份验证类的v1和v2路径,而只有v2路径存在?

我们正在研究它,并很快会回来提供修复此@Luracast的任何新闻?RC5有修复方法,请尝试!