我想向resource/index.json
发出请求,但由于我index
未经身份验证,因此我将其重定向到登录页面。当没有用户名:密码发送时,这就是我想要的行为
问题是我如何设置AuthComponent
同时使用Form
和Basic
,并且仅在请求通过api
前缀时检查基本。
此外,它是否在标题中找到用户名和密码时自动进行身份验证,还是必须手动执行?
答案 0 :(得分:2)
在相应的控制器中添加几行
class NameController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow("index");
}
}
这将允许索引无需身份验证。
答案 1 :(得分:0)
我决定使用好友的朋友 TokenAuthenticate
,是的,它与FormAuthenticate
一起使用,因此我可以同时使用它们。
事实上,它会根据现有的_token
参数或X-MyApiTokenHeader
标题自动选择要使用的组件。
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form',
'Authenticate.Token' => array(
'parameter' => '_token',
'header' => 'X-MyApiTokenHeader',
'userModel' => 'User',
'scope' => array('User.active' => 1),
'fields' => array(
'username' => 'username',
'password' => 'password',
'token' => 'public_key',
),
'continue' => true
)
)
)
);