CakePHP 1.3中的JSONP请求和身份验证组件
我正在开发一个jQuery移动应用程序,它需要通过一个使用CakePHP 1.3构建的网站表单对用户进行身份验证 身份验证过程通过标准的CakePHP身份验证组件进行处理 如果我使用JSON,CakePHP会检测到XMLHttpRequest已通过请求头发送。 如果用户未登录,CakePHP将返回“错误403:禁止”。这是完美的 但是我必须使用JSONP(用于跨域帖子)来提交凭据,这意味着不会发送XMLHttpRequest头。 如果用户未登录,CakePHP将返回login.ctp视图的HTML代码,这在ajax上下文中不是很有用 相反,我喜欢接收一种JSON对象,比如CakePHP 1.3中的JSONP请求和身份验证组件,cakephp,request,cakephp-1.3,jsonp,authentication,Cakephp,Request,Cakephp 1.3,Jsonp,Authentication,我正在开发一个jQuery移动应用程序,它需要通过一个使用CakePHP 1.3构建的网站表单对用户进行身份验证 身份验证过程通过标准的CakePHP身份验证组件进行处理 如果我使用JSON,CakePHP会检测到XMLHttpRequest已通过请求头发送。 如果用户未登录,CakePHP将返回“错误403:禁止”。这是完美的 但是我必须使用JSONP(用于跨域帖子)来提交凭据,这意味着不会发送XMLHttpRequest头。 如果用户未登录,CakePHP将返回login.ctp视图的HTM
jQuery16405332830320302397_1328263230862({
"success" : false,
"errorcode" : 401,
"errormessage" : "User not authenticated"
})
有没有一种“蛋糕”方法可以让CakePHP Auth组件处理JSONP请求?我遇到了类似的问题。在我的例子中,API的格式是:
http://example.com/action.json
。
我绕过auth进行快速训练,但您可以编写逻辑来生成响应
public function beforeFilter() {
$methods = array('action1','action2');
if (in_array($this->action, $methods) &&
isset($this->params['ext']) && $this->params['ext'] == 'json'
) {
/* **************************************************
* //Your logic here
* //For example,in my case I allowed all json request:
* $this->Auth->allow($this->action, 'login','add');
***************************************************/
}
}
这可能是一个更好的解决方案,但对我来说很有效。我也遇到了类似的问题。在我的例子中,API的格式是:
http://example.com/action.json
。
我绕过auth进行快速训练,但您可以编写逻辑来生成响应
public function beforeFilter() {
$methods = array('action1','action2');
if (in_array($this->action, $methods) &&
isset($this->params['ext']) && $this->params['ext'] == 'json'
) {
/* **************************************************
* //Your logic here
* //For example,in my case I allowed all json request:
* $this->Auth->allow($this->action, 'login','add');
***************************************************/
}
}
这可能是一个更好的解决方案,但这对我来说很有效