2015-01-21 39 views
0

我正在用CakePHP(2.5.6)进行开发,我的目标是同时使用表单验证和基本验证。CakePHP基本验证在浏览器上重定向

我需要这个,因为我使用基本身份验证从Android应用程序中调用一些休息操作。如果用户使用浏览器访问网站,我想使用表单身份验证。

设置我AppController同时支持这工作得很好。但如果我访问需要验证的操作,则会弹出基本身份验证警报。

最好的办法是重定向到用户 - >登录。但基本身份验证警报首先弹出。

我该如何解决这个问题?有更好的解决方案吗?

回答

1

我自己解决了这个问题。

我为api调用添加了路由前缀。

Configure::write('Routing.prefixes', array('api')); 

in core.php file。现在

我可能会触发该AppController的beforeFilter API调用,并且只能用于API调用添加基本身份验证。

public function beforeFilter() 
{ 
    if(isset($this->request->params['api'])) 
    { 
     // api call 
     // Pass settings in 
     $this->Auth->authenticate = array(
      'Basic' => array('userModel' => 'User') 
     ); 
    } 
} 

示例操作。

PostsController - >索引

public function api_index { 

} 

地址:domain.de/api/posts/index.json