我在应用程序中找不到一种认证API用户的方法。我最初着手构建一个系统,用户可以通过Web访问和验证,但要求已经改变,我需要实现一些额外的操作,可以使用POST API调用以RESTful方式提供。
我创建了一个类来扩展CBehaviour
并强制重定向到登录页面,以便所有未经身份验证的用户都可以访问(在yii框架论坛上找到)。问题是所有API调用都通过相同的逻辑强制执行,并且任何POST请求只会输出登录页面的HTML代码。
class ApplicationBehavior extends CBehavior {
private $_owner;
public function events() {
return array(
'onBeginRequest' => 'forceGuestLogin',
);
}
public function forceGuestLogin() {
$owner = $this->getOwner();
if ($owner->user->getIsGuest())
$owner->catchAllRequest = array("site/login");
}
}
我该如何将API用户的认证与Web用户分离?
protected/components
中,这样它就会被自动加载(因为控制器默认情况下不会被自动加载),您就不必在所有需要扩展它的控制器中导入它。 - Matt KLoginRequired
类,如果访客未经过身份验证,则会被重定向到“site/login”...这将触发相同的重定向逻辑无限循环。 - Matt K