CakePHP基本认证API(json)请求

时间:2014-03-31 00:18:40

标签: json cakephp

我想向resource/index.json发出请求,但由于我index未经身份验证,因此我将其重定向到登录页面。当没有用户名:密码发送时,这就是我想要的行为

问题是我如何设置AuthComponent同时使用FormBasic,并且仅在请求通过api前缀时检查基本。

此外,它是否在标题中找到用户名和密码时自动进行身份验证,还是必须手动执行?

2 个答案:

答案 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
            )
        )
    )
);