我已将我的应用程序从 CakePHP 1.3 升级到 2.0.4。
以前,我只能在一个控制器中使用安全组件来模拟基本 HTTP 身份验证。
我曾经做过这样的事情:
$this->Auth->allow(array('*'));
$this->Security->loginOptions = array('type'=>'basic','realm'=>'api');
$this->Security->loginUsers = array("api"=>"123");
$this->Security->requireLogin();
现在安全组件不再处理基本和摘要身份验证,我需要执行以下操作:
public $components = array(
'Auth' => array(
'authenticate' => array('Basic')
)
);
但是当我在 ApiController 上使用它时,它会重定向到 /users/login 处的登录表单。我错过了什么吗?
您需要使用登录操作配置 AuthComponent。您应该查看有关的部分配置身份验证处理程序 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html?#configuring-authentication-handlers在蛋糕书里。
您的设置可能类似于以下内容:
public $components = array(
'Auth'=> array(
'loginAction' => array(
'controller' => 'api',
'action' => 'login'
),
'loginRedirect' => array(
'controller' => 'api',
'action' => 'logged_on'
),
'authenticate' => array(
'Basic' => array(
'realm' => 'api'
)
)
)
);
另外,应该注意的是,Cake 不再支持使用登录用户财产。您可能需要延长基本认证类并覆盖它获取用户() method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)